在用户控件c#中将焦点设置为文本框

时间:2014-01-27 05:45:54

标签: c# winforms

我在c#窗口窗体中创建了一个用户控件,比如说chatWindow,它有一个带有butons的文本框。我把这个用户控件放在MainForm上四次说uc1,uc2,uc3,uc4。在MainForm上我还有其他控件。现在我希望当用户按TAB时,应该设置uc1文本框的焦点。按下选项卡应该设置uc2文本框的第二次焦点,也可以设置第3和第4个选项卡。

我尝试设置这些用户控件的TabIndex,但无法获得成功。我不知道如何在MainForm中获取用户控件的文本框属性。

3 个答案:

答案 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。 希望这就够了。 感谢。