VISUAL BASIC 提供的网格控制(Grid)主要是用来直观地输出数据,但不能输入数据,使用起来很不方便。能不能向网格中输入数据呢?这里提供一种解决方法,供大家参考:
利用一文本框作为缓冲,实现编辑功能。当网格改变行列时,把网格当前行列的内容传递给文本框;当网格中有 ASCII 字符产生时,把输入焦点设置为文本框,并把输入的 ASCII 字符送给文本框;当编辑完文本框的内容时,按 Enter 键或 TAB 键,把文本框的内容送给网格的当前行列,并把输入焦点设置为网格。
如下程序所示(其中 Textl 为文本框,Labell 为标签,Gridl 为网格):
Option Explicit
Const EnterAsc=13
Const TabAsc=9
Private Sub Form_Load()
Labell.Caption=”请输入”
End Sub
Private Sub Gridl_KeyPress(KeyAscii As Integer)
Text1.StFocus
Textl.SelStart=0
If KeyAscii <> EnterAsc And KeyAscii <> TabAsc Then
SendKeys Chr(KeyAscii)
End IF
End Sub
Private Sub Gridl_RowColChange()
Textl.Text=Grid1.Text
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii=EnterAsc Then
Grid1.SetFocus
KeyAscii=0
End If
End Sub
Private Sub Text1_LostFocus()
Grid1.Text=Text1.Text
End Sub