|
楼主 |
发表于 2023-6-9 14:56
|
显示全部楼层
四、常用事件。
1、AfterLabelEdit:编辑节点内容,退出节点编辑状态时触发。
参数:Cancel值等于False(值为0)接受修改(默认值),等于True(值为1)不接受修改
NewString修改后的值
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
If MsgBox("文本值已被已改为:" & NewString & Chr(10) & "是否接受修改?", vbOKCancel, "") = vbCancel Then Cancel = 1
End Sub
2、BeforeLabelEdit:进入节点编辑状态前触发。
参数:Cancel值等于False(值为0)进入编辑状态(默认值),等于True(值为1)不进入编辑状态
Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
If MsgBox("是否确定需要修改节点文本?", vbOKCancel, "") = vbCancel Then Cancel = 1
End Sub
3、Click:点击。鼠标点击控件触发。
Private Sub TreeView1_Click()
Debug.Print Me.TreeView1.SelectedItem.FullPath
Debug.Print Me.TreeView1.SelectedItem.Index
Debug.Print Me.TreeView1.SelectedItem.Text
End Sub
4、DblClick:双击。鼠标双击控件触发。
Private Sub TreeView1_DblClick()
Debug.Print Me.TreeView1.SelectedItem.FullPath
Debug.Print Me.TreeView1.SelectedItem.Index
Debug.Print Me.TreeView1.SelectedItem.Text
End Sub
鼠标单击双击事件没有可用参数,常用SelectedItem属性表示点击的节点
5、Enter:进入。控件获得焦点时触发。
以下三种情况均能触发Enter事件:
①、控件无焦点,鼠标点击控件或按Tab键(按键次数由TabIndex值决定)获得焦点;
②、加载窗体时控件TabIndex值为0(第一顺序)获得焦点;
③、控件内有节点处于编辑状态,退出编辑状态时获得焦点。
注意:如果同时有Enter、AfterLabelEdit事件代码,则只触发Enter事件。
Private Sub TreeView1_Enter()
Debug.Print Me.TreeView1.TabIndex
End Sub
6、Exit:退出。控件失去焦点时触发。
参数:Cancel值等于False(值为0)接受退出(默认值),等于True(值为1)不接受退出
以下三种情况均能触发Exit事件:
①、控件有焦点,鼠标点击其它控件或按Tab键失去焦点;
②、控件有焦点,关闭窗体失去焦点;
③、控件内有节点即将进入编辑状态。
注意:鼠标点击部分控件(如附加控件List View)不触发该事件。关闭窗体Cancel参数失效。
Private Sub TreeView1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MsgBox("是否退出TreeView控件?", vbOKCancel, "") = vbCancel Then Cancel = 1
End Sub
7、Expand:扩展。控件有扩展动作时触发,包括鼠标点击和代码扩展。
参数:Node为扩展的节点,类似Node属性
Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Debug.Print Node.Text
End Sub
8、KeyDown:键盘按下。键盘有键按下时触发。
参数:KeyCode按键编码;Shift按键前是否按下Shift键(0:没按、1:按下)
Private Sub TreeView1_KeyDown(KeyCode As Integer, ByVal Shift As Integer)
Debug.Print "KeyCode:" & KeyCode
Debug.Print "Shift:" & Shift
End Sub
9、KeyPress:键盘按键。键盘有按键时触发。
参数:KeyAscii实际键盘输入字符的ASCII编码
Private Sub TreeView1_KeyPress(KeyAscii As Integer)
Debug.Print "KeyAscii:" & KeyAscii
End Sub
10、KeyUp:键盘松开。松开键盘按键时触发。
参数:KeyCode松开键编码;Shift是否松开Shift键(0:没松、1:松开)
Private Sub TreeView1_KeyUp(KeyCode As Integer, ByVal Shift As Integer)
Debug.Print "KeyCode:" & KeyCode
Debug.Print "Shift:" & Shift
End Sub
11、 MouseDown:鼠标按下。鼠标有键按下时触发。
参数:Button(1:按下鼠标左键,2:按下鼠标右键,4:按下鼠标滚轮键)
Shift,Shift键是否同时按下,值为0表示没按下,值为1表示已按下
x和y,鼠标箭头在控件里的位置
Private Sub TreeView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
12、MouseMove:鼠标移动。当控件有焦点且鼠标在控件内移动时触发。
参数:参照MouseDown事件,Button为0时无鼠标按键
Private Sub TreeView1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
13、MouseUp:松开鼠标。当控件有焦点且鼠标有松开键时触发。
参数:参照MouseDown事件
Private Sub TreeView1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
|
|