关于[修改msflexgrid单元格]的问题(有难度)
我使用的是msflexgrid加text控件,以实现修改msflexgrid单元格的问题,现在我想进一步做到,当我选中一个单元格时,不要光标显示在text中,而是直接响应键盘字符,即敲击键盘字符即可更改被选中单元格的内容,不要光标出现?在线等...急用!请教了,谢谢!
[解决办法]
你可以试试在msflexgrid的keydown事件里将键盘录入的结果输出到当前选中的单元格里,可这样使用并不符合windows的使用常规,光标就是为了让用户知道目前编辑的位置,没有光标的编辑会很难受吧。
[解决办法]
可以用API控制文本框的光标
Private Declare Function HideCaret Lib "User32.dll " (ByVal hwnd As Long) As Boolean
Private Declare Function ShowCaret Lib "user32 " (ByVal hwnd As Long) As Long
Private Sub Text1_Change()
ShowCaret Text1.hwnd
End Sub
Private Sub Text1_GotFocus()
HideCaret Text1.hwnd
End Sub
[解决办法]
以前我用过的一段小程序:
按其他的键则将字符打进表格里,
按回车的时候向右移动一格,
当移动到了最右面的时候还会自动跳到下一行的最左面,
当移动到了最下面一行的最右面时,还可以自动添加新的行,就象EXCEL那样哦:
Private Sub Grid1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim X As Long
Dim Y As Long
X = Grid1.Col
Y = Grid1.Row
If KeyCode = 13 Then
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
Else
Grid1.Text = Grid1.Text & Chr(KeyCode)
End If
End Sub
缺点:
1:不能响应小键盘数字输入
2:无法输入中文,因为输入法是截取键盘中断再替换字符串的
因为无法满足我程序的需要所以没有用上面这段代码,不过除了这2个问题,其它倒是挺方便的,楼主如果正合适,就用用看吧