熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 09:45:09  來源: .NET編程 
   在數據庫的項目中一定會有輸入數據的Form最令錄入人員頭痛的就是每填完一個數據後要再操作鼠標或者另一只手按一下Tab(不過還是很麻煩)最人性化呢就是:按回車鍵(在小鍵盤內輸入只要一只手就可以了)還可以用方向鍵控制

第一步:Form的KeyPreview的屬性為True
第二步:按照需要把TabIndex按順序設置
第三步:編寫一個方法代碼如下:

FocusMove Is Function Name
ControlName Is the Controls Name Which you want to use
Private Sub FocusMove()Sub FocusMove(ByVal sender As Object ByVal e As SystemWindowsFormsKeyPressEventArgs) Handles ControlNameKeyPress ControlNameKeyPress
If eKeyChar = ChrW() 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

備注
如果將控件的 ControlStylesSelectable 樣式位設置為 true該控件包含在另一個控件中而且其所有父控件都可見並已啟用則 SelectNextControl 方法激活 Tab 鍵順序中的下一個控件

下面列表中的 Windows 窗體控件是不可選擇的從該列表中的控件派生的控件也是不可選擇的

Label
Panel
GroupBox
PictureBox
ProgressBar
Splitter
LinkLabel(當控件中沒有鏈接時)
要求
平台: Windows Windows NT Windows ME Windows Windows XP Home Edition Windows XP Professional Windows Server 系列


    最後要注意的就是TabIndex的設置如果控件在GroupBox中那麼GroupBox要在TabIndex的順序中就是說如果TextBox在GroupBox那麼GroupBoxIndex=TextBoxIndex=並且在SelectNextControld的參數nested=true即可還有一些細節大家在平時使用的時候還要多多注意的
end
From:http://tw.wingwit.com/Article/program/net/201311/11492.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.