Private Sub Form_Load()
Grid1.Rows = 10
Grid1.Cols = 7End Sub
Private Sub Grid1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim X As Long
Dim Y As Long
Dim L As Long
Dim Tmp As String
X = Grid1.Col
Y = Grid1.Row
Select Case KeyCode
   Case 13
      X = X + 1
      If X >= Grid1.Cols Then
         X = 1
         Y = Y + 1
         If Y >= Grid1.Rows Then Grid1.Rows = Grid1.Rows + 1
      End If
      Grid1.Col = X
      Grid1.Row = Y
   Case 8
      Tmp = Grid1.Text
      L = Len(Tmp) - 1
      If L > -1 Then Grid1.Text = Left(Tmp, L)
   Case Else
      Grid1.Text = Grid1.Text & Chr(KeyCode)
End SelectEnd Sub
-------------------------------------上面这段代码可以直接在mshflexgrid中录入字符,但是只能输入大小写字母,怎么不能输入任意符号呢?如,.<>/?!@#$%等,还有小键盘的数字也不能输入,请指点一下,能否解决可以输入所有任意字符呢,包括符号和文字!

解决方案 »

  1.   

    '在KeyPress事件中处理
    Private Sub Grid1_KeyPress(KeyAscii As Integer)'
    Dim X As Long
    Dim Y As Long
    Dim L As Long
    Dim Tmp As String
    X = Grid1.Col
    Y = Grid1.Row
    Select Case KeyAscii
       Case 13
          X = X + 1
          If X >= Grid1.Cols Then
             X = 1
             Y = Y + 1
             If Y >= Grid1.Rows Then Grid1.Rows = Grid1.Rows + 1
          End If
          Grid1.Col = X
          Grid1.Row = Y
       Case 8
          Tmp = Grid1.Text
          L = Len(Tmp) - 1
          If L > -1 Then Grid1.Text = Left(Tmp, L)
       Case Else
          Grid1.Text = Grid1.Text & Chr(KeyAscii)
    End Select