在数据库的项目中
一定会有输入数据的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