怎样在Datagrid1控件中实现键盘上下左右键的自由移动(在编辑状态下),有代码最好。
vb中设置光标的函数吗?

解决方案 »

  1.   


    vbKeyLeft 0x25 LEFT ARROW 键 
    vbKeyUp 0x26 UP ARROW 键 
    vbKeyRight 0x27 RIGHT ARROW 键 
    vbKeyDown 0x28 DOWN ARROW 键 
    【声明】
    Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    【说明】
    这个函数模拟了键盘行动
    【参数表】
      bVk ------------  Byte,欲模拟的虚拟键码  bScan ----------  Byte,键的OEM扫描码  dwFlags --------  Long,零;或设为下述两个标志之一
      KEYEVENTF_EXTENDEDKEY
      指出是一个扩展键,而且在前面冠以0xE0代码
      KEYEVENTF_KEYUP
      模拟松开一个键  dwExtraInfo ----  Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序
    【其它】
    '这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Const VK_LWIN = &H5B
    Private Const KEYEVENTF_KEYUP = &H2
    Private Const VK_APPS = &H5D
    Private Const VK_PLAY = &HFAPrivate Sub DoAction(Index As Integer)
      Dim VK_ACTION As Long  Select Case Index
        Case 0: '打开资源管理器
          VK_ACTION = &H45
        Case 1: '查找文件
          VK_ACTION = &H46
        Case 2: '最小化所有窗口
          VK_ACTION = &H4D
        Case 3: '运行程序
          VK_ACTION = &H52
        Case 4: '弹出Win菜单
          VK_ACTION = &H5B
        Case 5: '将计算机转入睡眠状态
          VK_ACTION = &H5E
        Case 6: '执行Windows帮助
          VK_ACTION = &H70
      End Select  Call keybd_event(VK_LWIN, 0, 0, 0)
      Call keybd_event(VK_ACTION, 0, 0, 0)
      Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
    End Sub
      

  2.   

    具体到Datagrid1控件中如何用呀?
    如我要由一列移动到另一列。