有五个MSHFlexGridMSHFlexGrid1
MSHFlexGrid2
MSHFlexGrid3
MSHFlexGrid4
MSHFlexGrid5
鼠标焦点在各个MSHFlexGrid上如何检测到焦点在哪个MSHFlexGrid上????

解决方案 »

  1.   

    MSHFlexGrid获取焦点的函数里记录下当前的编号不就行了吗
      

  2.   

    比如我选中MSHFlexGrid2右键菜单
    如何知道我选中的是MSHFlexGrid2
      

  3.   

    这样试试,当焦点移到某个MSHFlexGrid时将它的TAG=onfocus,当焦点移开时再将tag=""
    检测时,检测每个MSHFlexGrid的tag值就行了
      

  4.   


    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
      

  5.   


    此方很好最麻烦的是我五个MSHFlexGrid没有搞控件数组,还有办法吗
      

  6.   

    Private Sub MSHFlexGrid1_GotFocus()
        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
      

  7.   

    单你的各个mshflexgrid测试,注意等半秒。
    Private Sub Form_Load()
        Timer1.Interval = 500
    End SubPrivate Sub Timer1_Timer()
        Text1 = Me.ActiveControl.Name
        
    End Sub
      

  8.   

    汗,说了这么多了,学没明白,不是数据也无所谓呀
    每个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
      

  9.   

    你需要检测的时候加上下面的代码。或加一个测试按钮CmdTest
    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