vsflexgrid 控件限定输入的代码?
要求:
共 6 列。第 0列 和第 1行(即横竖表头)不许编辑;第1-4 列只能数数字;第5 列只能数 字母;输入不符合上述要求时,提示错误,并不改变原单元格内的值!
我试着用了以下 5 个 事件,但没成功,到底该用哪个?
Private Sub VSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim X As Long
Dim Y As Long
With VSFlexGrid1
X = .Col
Y = .Row
....
end with
end sub
Private Sub VSFlexGrid1_CellChanged(ByVal Row As Long, ByVal Col As Long)
''MsgBox "cellchangede"
End Sub
Private Sub VSFlexGrid1_KeyDownEdit(ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
MsgBox "keydownedit"
End Sub
Private Sub VSFlexGrid1_KeyPress(KeyAscii As Integer)
MsgBox "keypress"
MsgBox KeyAscii
End Sub
Private Sub VSFlexGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
MsgBox "keypressedit"
End Sub
要求:
共 6 列。第 0列 和第 1行(即横竖表头)不许编辑;第1-4 列只能数数字;第5 列只能数 字母;输入不符合上述要求时,提示错误,并不改变原单元格内的值!
我试着用了以下 5 个 事件,但没成功,到底该用哪个?
Private Sub VSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim X As Long
Dim Y As Long
With VSFlexGrid1
X = .Col
Y = .Row
....
end with
end sub
Private Sub VSFlexGrid1_CellChanged(ByVal Row As Long, ByVal Col As Long)
''MsgBox "cellchangede"
End Sub
Private Sub VSFlexGrid1_KeyDownEdit(ByVal Row As Long, ByVal Col As Long, KeyCode As Integer, ByVal Shift As Integer)
MsgBox "keydownedit"
End Sub
Private Sub VSFlexGrid1_KeyPress(KeyAscii As Integer)
MsgBox "keypress"
MsgBox KeyAscii
End Sub
Private Sub VSFlexGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
MsgBox "keypressedit"
End Sub
Select Case KeyAscii
Case 8 ''退格键
Case 13 ''回车键
Case 46 ''小数点
Case 48 To 57 ''数字键
Case Else
Beep ''报警声
KeyAscii = 0 ''输入为空
End Select
End Sub还有问题: 我只是做到了在 vsflexgrid 单元格中只输入数字和小数点! 如何做到 1-3 列限制 3为长度; 4-5 列限制4位长度,并保留一位 小数?
谢谢 bee6803(欢笑人生) 的答复!
在vsflexgrid8 中第 1,3,5 列允许输入负数,也就是说第一位可以出现负号“-”。 请问:
如何限制编辑指定列时允许输入“-”号,而且只能出现在第一位上。