quote:[b]以下是引用JustLee在2011-08-09 16:53:14的发言:谢谢指教,我读了一下您的那段脚本,发现有这样一个情况,如果我点了I/O域1,画面显示出来,然后我再点I/O域2,此时根据脚本最后的IF语句,就直接把I/O域1的画面关闭了,如果要实现点击哪个I/O域,就出现对应的那个画面,而不影响其他画面,该如何做呢?
PS:不好意思了,新手问题可能比较幼稚
呃,这个问题直接用画面窗口的标题来过渡就行了。
代码增加了画面窗口位置判断,最大限度的不覆盖下一个IO域。
用下面的代码替换原来的代码就行了。
On Error Resume Next
Dim x1,y1,w1,h1
Dim x2,y2,w2,h2
ScreenItems("H1").TagPrefix = "P1"
ScreenItems("H1").ScreenName = "PVMod"
x1=Item.Top
y1=Item.Left
w1=Item.Width
h1=Item.Height
x2=ScreenItems("H1").Top
y2=ScreenItems("H1").Left
w2=ScreenItems("H1").Width
h2=ScreenItems("H1").Height
If x1 > h2 Then ScreenItems("H1").Top = x1 - h2 Else ScreenItems("H1").Top = x1 + h1
If y1 > w2 Then ScreenItems("H1").Left = y1 - w2 Else ScreenItems("H1").Left = y1 + w1
If ScreenItems("H1").CaptionText <> Item.ObjectName Then
ScreenItems("H1").Visible = True
ScreenItems("H1").CaptionText = Item.ObjectName
Else
If ScreenItems("H1").Visible = False Then
ScreenItems("H1").Visible = True
Else
ScreenItems("H1").Visible = False
End If
End If