top
Loading...
VB網格中輸入數據

VISUAL BASIC提供的網格控制(Grid)主要是用來直觀地輸出數據,但不能輸入數據,使用起來很不方便。能不能向網格中輸入數據呢?筆者提出了兩種解決方法,供大家參考:

方法一:

改寫網格的KeyPress事件,在每次有合法字符輸入時,把Grid的Text項和輸入字符連接。這種方法缺點是:一代碼較復雜,需要處理各種ASCII字符信息;二是通過編程只能實現很少的編輯功能,如用退格鍵刪除前一字符,用Del鍵刪除所有字符;三是這種方法不能輸入漢字,使用起來受到很大的限制。

方法二:

利用一文本框作為緩沖,實現編輯功能。當網格改變行列時,把網格當前行列的內容傳遞給文本框;當網格中有ASCII字符產生時,把輸入焦點設置為文本框,并把輸入的ASCII字符送給文本框;當編輯完文本框的內容時,按Enter鍵或TAB鍵,把文本框的內容送給網格的當前行列,并把輸入焦點設置為網格。如下程序所示(其中Textl為文本框,Labell為標簽,Gridl為網格):

Option ExplicitConst EnterAsc=13Const TabAsc=9Private Sub Form-Load()

Labell.Caption=”請輸入”End SubPrivate Sub Gridl-KeyPress(KeyAscii As Integer)

Text1.StFocusTextl.SelStart=0If KeyAscii<>EnterAsc And KeyAscii<>TabAsc ThenSendKeys Chr(KeyAscii)

End IFEnd SubPrivate Sub Gridl-RowColChange()

Textl.Text=Grid1.TextEnd SubPrivate Sub Text1-KeyPress(KeyAscii As Integer)

If KeyAscii=EnterAsc ThenGrid1.SetFocusKeyAscii=0End IfEnd SubPrivate Sub Text1-LostFocus()

Grid1.Text=Text1.TextEnd Sub

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗