在keydown事件中写拦截下列常量的代码
vbdown,vbup,vbright,vbleft

解决方案 »

  1.   

    是vbkeydown,vbkeyup,vbkeyleft和vbkeyright
      

  2.   

    建议你用msflexgrid控件与一个文本框来做,这样就容易点,也不用那么多的Textbox。
      

  3.   

    只要 控件 有 keydown之类 的事件, 就可以 判断/ 模拟 键盘消息。Constant Value Description 
    vbKeyLButton 0x1 Left mouse button 
    vbKeyRButton 0x2 Right mouse button 
    vbKeyCancel 0x3 CANCEL key 
    vbKeyMButton 0x4 Middle mouse button 
    vbKeyBack 0x8 BACKSPACE key 
    vbKeyTab 0x9 TAB key 
    vbKeyClear 0xC CLEAR key 
    vbKeyReturn 0xD ENTER key 
    vbKeyShift 0x10 SHIFT key 
    vbKeyControl 0x11 CTRL key 
    vbKeyMenu 0x12 MENU key 
    vbKeyPause 0x13 PAUSE key 
    vbKeyCapital 0x14 CAPS LOCK key 
    vbKeyEscape 0x1B ESC key 
    vbKeySpace 0x20 SPACEBAR key 
    vbKeyPageUp 0x21 PAGE UP key 
    vbKeyPageDown 0x22 PAGE DOWN key 
    vbKeyEnd 0x23 END key 
    vbKeyHome 0x24 HOME key 
    vbKeyLeft 0x25 LEFT ARROW key 
    vbKeyUp 0x26 UP ARROW key 
    vbKeyRight 0x27 RIGHT ARROW key 
    vbKeyDown 0x28 DOWN ARROW key 
    vbKeySelect 0x29 SELECT key 
    vbKeyPrint 0x2A PRINT SCREEN key 
    vbKeyExecute 0x2B EXECUTE key 
    vbKeySnapshot 0x2C SNAPSHOT key 
    vbKeyInsert 0x2D INSERT key 
    vbKeyDelete 0x2E DELETE key 
    vbKeyHelp 0x2F HELP key 
    vbKeyNumlock 0x90 NUM LOCK key 
    The A key through the Z key are the same as the ASCII equivalents A – Z:Constant Value Description 
    vbKeyA 65 A key 
    vbKeyB 66 B key 
    vbKeyC 67 C key 
    vbKeyD 68 D key 
    vbKeyE 69 E key 
    vbKeyF 70 F key 
    vbKeyG 71 G key 
    vbKeyH 72 H key 
    vbKeyI 73 I key 
    vbKeyJ 74 J key 
    vbKeyK 75 K key 
    vbKeyL 76 L key 
    vbKeyM 77 M key 
    vbKeyN 78 N key 
    vbKeyO 79 O key 
    vbKeyP 80 P key 
    vbKeyQ 81 Q key 
    vbKeyR 82 R key 
    vbKeyS 83 S key 
    vbKeyT 84 T key 
    vbKeyU 85 U key 
    vbKeyV 86 V key 
    vbKeyW 87 W key 
    vbKeyX 88 X key 
    vbKeyY 89 Y key 
    vbKeyZ 90 Z key 
      

  4.   

    MsFlexGrid 控件没有提供文本编辑的功能,下面的例子演示了如何利用一个TextBox 实现编辑当前网格的功能。在按下一个键后, 就把TextBox 移动到当前的位置, 并激活。 在键入回车或移动到其他网格时, 就把TextBox 中的内容放到网格中。 实现步骤
    1 打开 VB5, 开启一个新的工程。2 在菜单“工程” 中选择 “部件”, 在列表中选中 “Microsoft FlexGrid Control ..”3 放一个 MsFlexGrid 控件和一个TextBox 控件(Text1)到 Form1。 修改MsFlexGrid 控件的名称为 Grid1, 设置Grid1 的行,列 为 4, 固定行,列为 0。 设置 Text1 的 Visiable 为 False, BorderStyle 为 None(0)。4 在Form1 的代码中增加声明:Const ASC_ENTER = 13 '回车
    Dim gRow As Integer
    Dim gCol As Integer5 增加代码到 Grid_KeyPress 过程:Private Sub Grid1_KeyPress(KeyAscii As Integer)
    ' Move the text box to the current grid cell:
    Text1.Top = Grid1.CellTop + Grid1.Top
    Text1.Left = Grid1.CellLeft + Grid1.Left
    ' Save the position of the grids Row and Col for later:
    gRow = Grid1.Row
    gCol = Grid1.Col
    ' Make text box same size as current grid cell:
    Text1.Width = Grid1.CellWidth - 2 * Screen.TwipsPerPixelX
    Text1.Height = Grid1.CellHeight - 2 * Screen.TwipsPerPixelY
    ' Transfer the grid cell text:
    Text1.Text = Grid1.Text
    ' Show the text box:
    Text1.Visible = True
    Text1.ZOrder 0 ' 把 Text1 放到最前面!
    Text1.SetFocus
    ' Redirect this KeyPress event to the text box:
    If KeyAscii <> ASC_ENTER Then
    SendKeys Chr$(KeyAscii)
    End If
    End Sub6 增加代码到 Text1_KeyPress 过程:Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = ASC_ENTER Then
    Grid1.SetFocus ' Set focus back to grid, see Text_LostFocus.
    KeyAscii = 0 ' Ignore this KeyPress.
    End If
    End Sub7 增加代码到 Text1_LostFocus 过程:Private Sub Text1_LostFocus()
    Dim tmpRow As Integer
    Dim tmpCol As Integer
    ' Save current settings of Grid Row and col. This is needed only if
    ' the focus is set somewhere else in the Grid.
    tmpRow = Grid1.Row
    tmpCol = Grid1.Col
    ' Set Row and Col back to what they were before Text1_LostFocus:
    Grid1.Row = gRow
    Grid1.Col = gCol
    Grid1.Text = Text1.Text ' Transfer text back to grid.
    Text1.SelStart = 0 ' Return caret to beginning.
    Text1.Visible = False ' Disable text box.
    ' Return row and Col contents:
    Grid1.Row = tmpRow
    Grid1.Col = tmpCol
    End Sub8 好了。 按 F5 开始测试。 您可以自由地在 Grid 中移动,
      

  5.   

    Private Sub txtTest_KeyDown(KeyCode As Integer, Shift As Integer)
        Select case KeyCode
            case vbKeyPageUp    '' PAGEUP 键 
             .....
            case vbKeyPageDown  '' PAGEDOWN 键 
             .....
            case vbKeyUp        '' UP ARROW 键 
             .....
            case vbKeyDown      '' DOWN ARROW 键 
             .....
        End Select
    End Sub''''''''''''''''常用键值代码:
    vbKeyLButton 1 鼠标左键 
    vbKeyRButton 2 鼠标右键 
    vbKeyCancel 3 CANCEL 键 
    vbKeyMButton 4 鼠标中键 
    vbKeyBack 8 BACKSPACE 键 
    vbKeyTab 9 TAB 键 
    vbKeyClear 12 CLEAR 键 
    vbKeyReturn 13 ENTER 键 
    vbKeyShift 16 SHIFT 键 
    vbKeyControl 17 CTRL 键 
    vbKeyMenu 18 菜单键 
    vbKeyPause 19 PAUSE 键 
    vbKeyCapital 20 CAPS LOCK 键 
    vbKeyEscape 27 ESC 键 
    vbKeySpace 32 SPACEBAR 键 
    vbKeyPageUp 33 PAGEUP 键 
    vbKeyPageDown 34 PAGEDOWN 键 
    vbKeyEnd 35 END 键 
    vbKeyHome 36 HOME 键 
    vbKeyLeft 37 LEFT ARROW 键 
    vbKeyUp 38 UP ARROW 键 
    vbKeyRight 39 RIGHT ARROW 键 
    vbKeyDown 40 DOWN ARROW 键 
    vbKeySelect 41 SELECT 键 
    vbKeyPrint 42 PRINT SCREEN 键 
    vbKeyExecute 43 EXECUTE 键 
    vbKeySnapshot 44 SNAP SHOT 键 
    vbKeyInser 45 INS 键 
    vbKeyDelete 46 DEL 键 
    vbKeyHelp 47 HELP 键 
    vbKeyNumlock 144 NUM LOCK 键 
      

  6.   

    MSDN:键码常数
    键码
    常数 值 描述 
    vbKeyLButton 1 鼠标左键 
    vbKeyRButton 2 鼠标右键 
    vbKeyCancel 3 CANCEL 键 
    vbKeyMButton 4 鼠标中键 
    vbKeyBack 8 BACKSPACE 键 
    vbKeyTab 9 TAB 键 
    vbKeyClear 12 CLEAR 键 
    vbKeyReturn 13 ENTER 键 
    vbKeyShift 16 SHIFT 键 
    vbKeyControl 17 CTRL 键 
    vbKeyMenu 18 菜单键 
    vbKeyPause 19 PAUSE 键 
    vbKeyCapital 20 CAPS LOCK 键 
    vbKeyEscape 27 ESC 键 
    vbKeySpace 32 SPACEBAR 键 
    vbKeyPageUp 33 PAGEUP 键 
    vbKeyPageDown 34 PAGEDOWN 键 
    vbKeyEnd 35 END 键 
    vbKeyHome 36 HOME 键 
    vbKeyLeft 37 LEFT ARROW 键 
    vbKeyUp 38 UP ARROW 键 
    vbKeyRight 39 RIGHT ARROW 键 
    vbKeyDown 40 DOWN ARROW 键 
    vbKeySelect 41 SELECT 键 
    vbKeyPrint 42 PRINT SCREEN 键 
    vbKeyExecute 43 EXECUTE 键 
    vbKeySnapshot 44 SNAP SHOT 键 
    vbKeyInser 45 INS 键 
    vbKeyDelete 46 DEL 键 
    vbKeyHelp 47 HELP 键 
    vbKeyNumlock 144 NUM LOCK 键 
    A 键到 Z 键与其 ASCII 码的相应值'A' 到 'Z' 是一致的
    常数 值 描述 
    vbKeyA 65 A 键 
    vbKeyB 66 B 键 
    vbKeyC 67 C 键 
    vbKeyD 68 D 键 
    vbKeyE 69 E 键 
    vbKeyF 70 F 键 
    vbKeyG 71 G 键 
    vbKeyH 72 H 键 
    vbKeyI 73 I 键 
    vbKeyJ 74 J 键 
    vbKeyK 75 K 键 
    vbKeyL 76 L 键 
    vbKeyM 77 M 键 
    vbKeyN 78 N 键 
    vbKeyO 79 O 键 
    vbKeyP 80 P 键 
    vbKeyQ 81 Q 键 
    vbKeyR 82 R 键 
    vbKeyS 83 S 键 
    vbKeyT 84 T 键 
    vbKeyU 85 U 键 
    vbKeyV 86 V 键 
    vbKeyW 87 W 键 
    vbKeyX 88 X 键 
    vbKeyY 89 Y 键 
    vbKeyZ 90 Z 键 
    0 键到 9 键与其 ASCII 码的相应值 '0' 到 '9' 是一致的
    常数 值 描述 
    vbKey0 48 0 键 
    vbKey1 49 1 键 
    vbKey2 50 2 键 
    vbKey3 51 3 键 
    vbKey4 52 4 键 
    vbKey5 53 5 键 
    vbKey6 54 6 键 
    vbKey7 55 7 键 
    vbKey8 56 8 键 
    vbKey9 57 9 键 
    数字小键盘上的键
    常数 值 描述 
    vbKeyNumpad0 96 0 键 
    vbKeyNumpad1 97 1 键 
    vbKeyNumpad2 98 2 键 
    vbKeyNumpad3 99 3 键 
    vbKeyNumpad4 100 4 键 
    vbKeyNumpad5 101 5 键 
    vbKeyNumpad6 102 6 键 
    vbKeyNumpad7 103 7 键 
    vbKeyNumpad8 104 8 键 
    vbKeyNumpad9 105 9 键 
    vbKeyMultiply 106 乘号 (*) 键 
    vbKeyAdd 107 加号 (+) 键 
    vbKeySeparator 108 ENTER 键(在数字小键盘上) 
    vbKeySubtract 109 减号 (-) 键 
    vbKeyDecimal 110 小数点 (.) 键 
    vbKeyDivide 111 除号 (/) 键 
    功能键
    常数 值 描述 
    vbKeyF1 112 F1 键 
    vbKeyF2 113 F2 键 
    vbKeyF3 114 F3 键 
    vbKeyF4 115 F4 键 
    vbKeyF5 116 F5 键 
    vbKeyF6 117 F6 键 
    vbKeyF7 118 F7 键 
    vbKeyF8 119 F8 键 
    vbKeyF9 120 F9 键 
    vbKeyF10 121 F10 键 
    vbKeyF11 122 F11 键 
    vbKeyF12 123 F12 键 
    vbKeyF13 124 F13 键 
    vbKeyF14 125 F14 键 
    vbKeyF15 126 F15 键 
    vbKeyF16 127 F16 键