我在这里学编程 索引篇 共55页[1 2 3 4 5 6 7 >»<... 最后一页]

方法(D-G)

Drag

用于除了 Line、Menu、Shape、Timer 或 CommonDialog 控件之外的任何控件的开始、结束或取消拖动操作。不支持命名参数。

语法:object.Drag action
object 必需的。是一个对象表达式,其值为“应用于”列表中的一个对象。 如果省略 object,则认为该对象事件过程包含有 Drag 方法。
action 可选的。是一个常数或数值,如“设置值”中所描述的,它指定要执行的动作。如果省略 action,则缺省值为开始拖动对象。

action 设置值:
vbCancel 0 取消拖动操作
vbBeginDrag 1 开始拖动 object
vbEndDrag 2 结束拖放 object

说明:
上述常数在 Visual Basic (VB) 对象浏览器的对象库里列出。

只有当对象的 DragMode 属性设置为手工(0)时,才需要使用 Drag 方法控制拖放操作。但是,也可以对 DragMode 属性设置为自动(1 或 vbAutomatic)的对象使用 Drag。

如果在拖动对象过程中想改变鼠标指针形状,使用 DragIcon 或 MousePointer 属性。如果没有指定 DragIcon 属性,则只能使用 MousePointer 属性。

Drag 方法一般是同步的,这意味着其后的语句直到拖动操作完成之后才执行。然而,如果该控件的 DragMode 属性设置为 Manual (0 or vbManual),则它可以异步执行。

例:本示例使用 Drag 方法将一个位图 (bmp) 文件的文件名拖到显示该位图的图片框中。要检验此示例,可将本例所有代码粘贴到一个含有 DriveListBox、DirListBox、FileListBox、PictureBox 和 Label 控件的窗体的声明部分。对所有控件要使用缺省名。所有控件大小和位置的确定应使它们易于被看到和使用。标签的大小和位置并不重要,因为它们在运行时会改变。当程序开始时,可以浏览文件系统并装载任何需要的位图。装入所需要显示的位图后,可单击该位图的文件名并将它拖到图片框中。

Private Sub Form_Load ()
Picture1.AutoSize = -1 ' 打开 AutoSize。
Label1.Visible = 0 ' 使该标签不可见。
File1.Pattern = "*.BMP; *.ICO; *.WMF" ' 设置文件的各种样式。
End Sub

Private Sub Dir1_Change () ' 任何 Dir1 中的变更
File1.Path = Dir1.Path ' 都显示在 ile1 中。
End Sub

Private Sub Drive1_Change () ' 任何 Drive1 中的变更
Dir1.Path = Drive1.Drive ' 都显示在 Dir1 中。
End Sub

Private Sub File1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim DY ' 声明变量。
DY = TextHeight("A") ' 取得一行的高度。
Label1.Move File1.Left, File1.Top + Y - DY /2, File1.Width, DY
Label1.Drag ' 拖标签轮廓。
End Sub

Private Sub Dir1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' 改变指针为不放。
If State = 0 Then Source.MousePointer = 12
' 使用缺省鼠标指针。
If State = 1 Then Source.MousePointer = 0
End Sub

Private Sub Drive1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' 改变指针为不放。
If State = 0 Then Source.MousePointer = 12
' 使用缺省鼠标指针。
If State = 1 Then Source.MousePointer = 0
End Sub

Private Sub Form_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
' 改变指针为不放。
If State = 0 Then Source.MousePointer = 12
' 使用缺省鼠标指针。
If State = 1 Then Source.MousePointer = 0
End Sub

Private Sub File1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
On Error Resume Next
If State = 0 And Right$(File1.Filename,4) = ".ICO" Then
Label1.DragIcon = LoadPicture(File1.Path + "\" + File1.Filename)
If Err Then MsgBox "The icon file can't be loaded."
ElseIf State = 1 Then
Label1.DragIcon = LoadPicture () ' 使用非拖式图标。
End If
End Sub

Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)
On Error Resume Next
Picture1.Picture = LoadPicture(File1.Path + "\" + File1.Filename)
If Err Then MsgBox "The picture file can't be loaded."
End Sub

GetVisibleCount

用以移动 MDIForm、Form 或控件。不支持命名参数。

这个方法返回固定在 TreeView 控件的内部区域的 Node 对象的个数。

语法:
object.GetVisibleCount
说明:
Node 对象的个数取决于在一个窗口中能固定多少行。总的行数取决于控件的高度和 Font 对象的 Size 属性。该计数包括列表底部的只能看到一局部的项。

可以使用 GetVisibleCount 属性确保可视的最小行数,这样可以精确地访问一个层。如果最小行数是不可视的,可以用 Height 属性重新设置 TreeView 的大小。

如果一个 特定的 Node 对象必须是可视时,使用 EnsureVisible 方法来滚动和展开 TreeView 控件。

例:这个例子为 TreeView 控件添加几个 Node 对象。在单击窗体时,代码使用 GetVisibleCount 方法来校验有多少行是可视的,然后扩大控件以显示全部对象。为试用此例,要在窗体上放置一个 TreeView 控件并在窗体的声明部分粘贴该代码。运行此例,并单击窗体来扩大该控件。

Private Sub Form_Load()
Dim nodX As Node
Dim i as Integer
TreeView1.BorderStyle = 1 '显示边框。
For i = 1 to 20
Set nodX = TreeView1.Nodes.Add(,,,"Node " & CStr(i))
Next I
TreeView1.Height = 1500 '为了比较,缩短 TreeView。
End Sub

Private Sub Form_Click()
While Treeview1.GetVisibleCount < 20
'放大 treeview。
TreeView1.Height = TreeView1.Height + TreeView1.Font.Size
Wend
End Sub
 

我在这里学编程 索引篇 共55页[1 2 3 4 5 6 7 >»<... 最后一页]