在标准的WinForms应用程序中,是否可以有类似以下的场景,我该怎么做:
包含四个文本框控件的表单,从上到下排列在表单上:
所需的行为是,当表单加载时,焦点位于TextBox3上,但是当标签显示时,焦点会转到顶部,并按照以下方式正常浏览所有控件:
答案 0 :(得分:1)
这将是您需要编写代码的东西,它需要正确使用事件。根据需要设置Tab键顺序,然后编写以下代码:
private bool OnLoad = True;
Form_OnLoad(...) {
TextBox3.SetFocus();
}
TextBox3_LostFocus(...) {
if (OnLoad) {
TextBox1.SetFocus();
OnLoad = false;
} // The else falls through to the default tab order
}
答案 1 :(得分:1)
LFSR是对的:
你必须在textBox3 LostFocus事件上编码,这是一个VB示例
static notFirstTime as boolean
if notFirstTime then exit sub
textbox1.setFocus
notfirstTime=true
答案 2 :(得分:0)
简短回答:绝对!
表单上的布局与Tab键顺序无关。您可以通过设置TabIndex属性来指定选项卡遍历 - 以及起始点。起始控件应为0,下一个为1,依此类推。此外,TabStop属性可以方便地指定Tab键可以访问哪些控件。
答案 3 :(得分:0)
您可以使用以下TabIndex属性配置将其设置为工作购买。
您必须将标签设置为TabStop =“True”。但我觉得这可行。请记住,我不是100%肯定...
答案 4 :(得分:0)
在你的构造函数(或设计器)中 像这样设置表索引(或类似的东西)。
this.textBox1.TabIndex = 1;
this.textBox2.TabIndex = 2;
this.textBox3.TabIndex = 0;
this.textBox4.TabIndex = 4;
然后设置一个事件,将文本框3的tabIndex设置为新值:
private void textBox3_Leave(object sender, EventArgs e)
{
textBox3.TabIndex = 3;
}