VB.NET:鍵盤控制焦點移動

來源:互聯網
上載者:User

在資料庫的項目中,一定會有輸入資料的Form。最令錄入人員頭痛的就是每填完一個資料後,要再操作滑鼠,或者另一隻手按一下Tab(不過還是很麻煩)。最人性化的就是:按斷行符號鍵(在小鍵盤內輸入只要一隻手就可以了),還可以用方向鍵控制。

第一步:Form的KeyPreview的屬性為True;

第二步:按照需要把TabIndex按順序設定;

第三步:編寫一個方法,代碼如下:

 

'---FocusMove Is Function Name--

'---ControlName Is the Control's Name Which you want to use ---

Private Sub FocusMove()Sub FocusMove(ByVal sender As Object,

ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ControlName1.KeyPress,

ControlName2.KeyPress

If e.KeyChar = ChrW(13) Then

'---SelectNextControl is a Function will be introduced next---

SelectNextControl(sender, True, True, True, False)

End If

End Sub

 

SelectNextControl的說明來自MSDN:

啟用下一個控制項。

 

[Visual Basic]

Public Function SelectNextControl( _

ByVal ctl As Control, _

ByVal forward As Boolean, _

ByVal tabStopOnly As Boolean, _

ByVal nested As Boolean, _

ByVal wrap As Boolean _

) As Boolean

[C#]

public bool SelectNextControl(

Control ctl,

bool forward,

bool tabStopOnly,

bool nested,

bool wrap

);

[C++]

public: bool SelectNextControl(

Control* ctl,

bool forward,

bool tabStopOnly,

bool nested,

bool wrap

);

[JScript]

public function SelectNextControl(

ctl : Control,

forward : Boolean,

tabStopOnly : Boolean,

nested : Boolean,

wrap : Boolean

) : Boolean;

 

參數: 

◆ctl

從其上開始搜尋的Control。

◆forward

如果為true則在Tab鍵順序中前移;如果為false則在Tab鍵順序中後移。

◆tabStopOnly

true表示忽略TabStop屬性設定為false的控制項;false表示不忽略。

◆nested

true表示包括嵌套子控制項(子控制項的子級);false表示不包括。

◆wrap

true表示在到達最後一個控制項之後從Tab鍵順序中第一個控制項開始繼續搜尋;false表示不繼續搜尋。

◆傳回值

如果控制項已啟用,則為true;否則為false。

備忘:

如果將控制項的ControlStyles.Selectable樣式位設定為true,該控制項包含在另一個控制項中,而且其所有父控制項都可見並已啟用,則SelectNextControl方法啟用Tab鍵順序中的下一個控制項。

下面列表中的Windows表單控制項是不可選擇的。從該列表中的控制項派生的控制項也是不可選擇的。

◆Label

◆Panel

◆GroupBox

◆PictureBox

◆ProgressBar

◆Splitter

◆LinkLabel(當控制項中沒有連結時)

要求:

平台:Windows 98,Windows NT 4.0,Windows ME,Windows 2000,Windows XP Home Edition,Windows XP Professional,Windows Server 2003系列

最後要注意的就是TabIndex的設定,如果控制項在GroupBox中,那麼GroupBox要在TabIndex的順序中,就是說,如果TextBox1在GroupBox1中,那麼GroupBox1.Index=1,TextBox1.Index=2。並且在SelectNextControld的參數nested=true,即可。還有一些細節大家在平時使用的時候還要多多注意的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.