有五个MSHFlexGridMSHFlexGrid1
MSHFlexGrid2
MSHFlexGrid3
MSHFlexGrid4
MSHFlexGrid5
鼠标焦点在各个MSHFlexGrid上如何检测到焦点在哪个MSHFlexGrid上????
MSHFlexGrid2
MSHFlexGrid3
MSHFlexGrid4
MSHFlexGrid5
鼠标焦点在各个MSHFlexGrid上如何检测到焦点在哪个MSHFlexGrid上????
调试欢乐多
如何知道我选中的是MSHFlexGrid2
检测时,检测每个MSHFlexGrid的tag值就行了
Option Explicit
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'说明:拖入一个控件数组:MSHFlexGrid1,共五个表格控件
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dim intFocusPos As Integer '用于记录焦点所在位置
Private Sub MSHFlexGrid1_GotFocus(Index As Integer)
intFocusPos = Index '得到焦点
Label1.Caption = "焦点在:第" & CStr(intFocusPos + 1) & "个表格上"
End SubPrivate Sub MSHFlexGrid1_LostFocus(Index As Integer)
intFocusPos = -1 '失去焦点
Label1.Caption = ""
End Sub
此方很好最麻烦的是我五个MSHFlexGrid没有搞控件数组,还有办法吗
Form47.Caption = "焦点在第1个"
End SubPrivate Sub MSHFlexGrid1_LostFocus()
Form47.Caption = ""
End SubPrivate Sub MSHFlexGrid2_GotFocus()
Form47.Caption = "焦点在第二个"
End SubPrivate Sub MSHFlexGrid2_LostFocus()
Form47.Caption = ""
End SubPrivate Sub MSHFlexGrid2_GotFocus()
Form47.Caption = "焦点在第二个"
End SubPrivate Sub MSHFlexGrid2_LostFocus()
Form47.Caption = ""
End Sub
Private Sub Form_Load()
Timer1.Interval = 500
End SubPrivate Sub Timer1_Timer()
Text1 = Me.ActiveControl.Name
End Sub
每个MSHFlexGrid的GotFocus和LostFocus都做个记录就行了
比如:MSHFlexGrid1
Private Sub MSHFlexGrid1_GotFocus()
MSHFlexGrid1.tag="OnFocus"
End SubPrivate Sub MSHFlexGrid1_LostFocus()
MSHFlexGrid1.tag=""
End Sub
你需要检测的时候加上下面的代码。或加一个测试按钮CmdTest
Private Sub CmdTest_Click()
Dim MSFG As MSHFlexGrid
For Each MSFG In me'如果检测不在同一窗体,这里换成MSHFlexGrid所在的窗体名
if MSFG.tag="OnFocus"Next then
msbbox "当前焦点在" & MSFG.Name & “上"
exit sub
end if
end sub
Private Sub CmdTest_Click()
Dim MSFG As MSHFlexGrid
For Each MSFG In me'如果检测不在同一窗体,这里换成MSHFlexGrid所在的窗体名
if MSFG.tag="OnFocus" then'这里没有NEXT
msbbox "当前焦点在" & MSFG.Name & “上"
exit sub
end if
end sub