我现在有一个MSFLexGrid控件,up、down、left、right这四个健在控件里默认是上下左有移动的,我现在想要实现这样的功能:比如按下down健就取得下一个单元格的row和col的值,再触发一个事件,不知道那位高手能给个例子呢,谢谢!

解决方案 »

  1.   

    Private Sub MSFlexGrid1_SelChange()
    Me.Caption = MSFlexGrid1.Row & "," & MSFlexGrid1.Col
    End Sub
      

  2.   

    to mmcgzs:
       你的例子好像不能判断我按下的是那个健啊???而且我试了好像不行啊,还有我的四个健都有不同的时间相对应啊,我主要是要捕捉这四个健的press事件啊,高手们再帮我想想啊谢谢
      

  3.   

    控件自代的过程好象不能获取到这四个键的press事件看来只能使用子类了看一些关于子类的东西吧
      

  4.   

    '模块:
    Option Explicit
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public oldproc As Long
    Public Const WM_KEYDOWN = &H100Public Function RegisterWindow(hwnd As Long) As Long
    If hwnd <> 0 Then
      oldproc = SetWindowLong(hwnd, -4, AddressOf WinProc)
    End If
    End Function
    Public Function unRegisterWindow(hwnd As Long) As Long
     
    If hwnd <> 0 Then
       SetWindowLong hwnd, -4, oldproc
    End IfEnd Function
    Public Function WinProc(ByVal hwnd As Long, ByVal msg As Long, ByVal lpara As Long, ByVal wpara As Long) As Long
    If msg = WM_KEYDOWN Then
       Select Case lpara
          Case vbKeyUp
            MsgBox "向上"
          Case vbKeyDown
            MsgBox "向下"
          Case vbKeyLeft
            MsgBox "向左"
          Case vbKeyRight
            MsgBox "向右"
       End Select
    End IfWinProc = CallWindowProc(oldproc, hwnd, msg, lpara, wpara)
    End Function
    '窗体
    Private Sub Form_Load()
      RegisterWindow MSFlexGrid1.hwnd
    End SubPrivate Sub Form_Unload(Cancel As Integer)
      unRegisterWindow MSFlexGrid1.hwnd
    End Sub
      

  5.   

    用KeyCode查,KeyPress查不到箭头的键值