3.7.2 “Picture”控件的其他用处
在系统主窗体中,“”TreeView控件和“ListView”控件之间的衔接是可以调节的,如图3.41所示,可以通过鼠标调节“TreeView”控件和“ListView”控件之间的位置,该项功能是利用“Picture”控件来实现的。
|
| 图3.41 用鼠标调节位置 |
在主窗体中的“TreeView”控件和“ListView”控件中间放置一个“Picture”控件,并将其“MousePointer”属性设置为“9 – SizeWE”,以便当鼠标移近时变为东西箭头形。其实现的关键代码如下:
//……………………………………………例程3-28……………………………………………………// Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Picture1.BackColor = &H800000 '设置“Picture”控件的背景色 End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error Resume Next If Button = 1 Then '当单击右键时 'Picture控件的Left属性为当前值加上横坐标的值 Picture1.Left = Picture1.Left + X
|
技术细节
On Error语句
启动一个错误处理程序并指定该子程序在一个过程中的位置,也可用来禁止一个错误处理程序。
On Error语句的语法可以具有以下形式。
(1)On Error GoTo line
启动错误处理程序,且该例程从必要的line参数中指定的line开始。line参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到line,激活错误处理程序。指定的line必须在一个过程中,且这个过程与On Error语句相同,否则会发生编译时间错误。
(2)On Error Resume Next
说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式,而不能使用On Error GoTo Line的形式。
(3)On Error GoTo 0
禁止当前过程中任何已启动的错误处理程序。
End If End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim pl& '定义变量 On Error Resume Next pl = Picture1.Left '将“Pictuer”控件的“Left”属性赋给变量pl If pl < 1000 Then '如果pl小于1000 pl = 1000 '将pl设置为1000 Picture1.Left = pl '将“Picture”控件的“Left”属性设置为pl End If If pl > (Me.ScaleWidth − 1000) Then '如果pl大于窗体的宽度−1000 pl = Me.ScaleWidth − 1000 '将窗体的宽度−1000的值赋给变量pl Picture1.Left = pl '将“Picture”控件的“Left”属性设置为pl End If TreeView1.Width = pl − TreeView1.Left − 20 '设置“TreeView”控件的“Width”属性 ListView1.Width = pl − ListView1.Left − 80 '设置“ListView”控件的“Width”属性 Picture1.Width = 30 '设置“Picture”控件的“Width”属性 ListView1.Left = TreeView1.Width + 50 '设置“ListView”控件的“Left”属性 '设置“ListView”控件的“Width”属性 ListView1.Width = Me.ScaleWidth − ListView1.Left − 50 Picture1.BackColor = &H40& '设置“Picture”控件的背景色 End Sub
|
B代码导读
MouseDown事件:该事件在单击鼠标时发生。
MouseMove事件:该事件在鼠标移动时发生。
MouseUp事件:该事件在释放鼠标时发生。
Me关键字:该关键字适用于类模块中的每个过程。当类有多个实例时,Me 在代码正在执行的地方提供引用具体实例的方法。在上述代码中,Me指代“Frm_Main”窗体。
【责任编辑:
夏书 TEL:(010)68476606】