我在c#窗口窗体中创建了一个用户控件,比如说chatWindow,它有一个带有butons的文本框。我把这个用户控件放在MainForm上四次说uc1,uc2,uc3,uc4。在MainForm上我还有其他控件。现在我希望当用户按TAB时,应该设置uc1文本框的焦点。按下选项卡应该设置uc2文本框的第二次焦点,也可以设置第3和第4个选项卡。
我尝试设置这些用户控件的TabIndex,但无法获得成功。我不知道如何在MainForm中获取用户控件的文本框属性。
答案 0 :(得分:3)
您可以定义一个变量来存储制表符按计数,在类级别的Form类中定义它:
int count = 0;
然后在Form's
KeyDown事件中执行以下操作:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
switch (count)
{
case 0:
this.ActiveControl = uc1TextBox;
count++;
break;
case 1:
this.ActiveControl = uc2TextBox;
count++
break;
// and so on...
}
}
}
答案 1 :(得分:0)
首先设置标签顺序并确保您要选择的所有控件都将其TabStop属性设置为true
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
this.ProcessTabKey(true);
}
}
答案 2 :(得分:0)
尝试相反, 只是, 在设计模式下,从属性资源管理器中将uc1的tabIndex值设置为0,将uc2设置为1,将uc3设置为2,将uc4设置为3,并将其tabstop属性设置为true。 希望这就够了。 感谢。