C# 选项卡按钮在windows窗体应用程序中切换到错误控件

C# 选项卡按钮在windows窗体应用程序中切换到错误控件,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我正在使用c#在windows窗体应用程序中工作。我有两个字段,分别是“用户名”和“密码”,还有两个按钮“登录”和“取消”。表单加载时,光标被放置在用户名文本框中,这是确定的 但当我从键盘上按TAB键而不是进入密码文本框时,它将进入登录按钮。我怎么设置这个 此外,用于选择所有文本的快捷键CTRL+A在文本字段中不起作用。 有什么帮助吗?WinForms上的每个控件都有一个TabIndex。这可以在控件的属性中找到。如果您想在选项卡之后将焦点切换到“密码”文本框中,则需要将该值调整为2 在设计器中

我正在使用c#在windows窗体应用程序中工作。我有两个字段,分别是“用户名”和“密码”,还有两个按钮“登录”和“取消”。表单加载时,光标被放置在用户名文本框中,这是确定的

但当我从键盘上按TAB键而不是进入密码文本框时,它将进入登录按钮。我怎么设置这个

此外,用于选择所有文本的快捷键CTRL+A在文本字段中不起作用。
有什么帮助吗?

WinForms上的每个控件都有一个
TabIndex
。这可以在控件的属性中找到。如果您想在选项卡之后将焦点切换到“密码”文本框中,则需要将该值调整为2

在设计器中选择控件,进入属性:

并设置TabIndex属性:

快捷方式Cntr+A仅在您将焦点放在
文本框上时有效!还要确保
ShortCutsEnabled
属性设置为true:

以下是参考资料。但它说:

属性值为true时,控件不支持CTRL+A快捷键


将密码文本框1的tabindex属性更改为用户名文本框的tabindex。(即用户名tabindex=1,密码tebaindex=2)

通过设置“tabindex”来设置“选项卡”的顺序 例如


下面是关于使用Ctrl+A在文本框中选择文本的第二个问题的答案

要做到这一点,您需要钩住文本框的KeyDown事件。 以下是您选择文本的方式:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.A) // Select All
    {
        ((TextBox)sender).SelectAll();
        e.SuppressKeyPress = true;
        e.Handled = true;
    }
}

您应该正确设置TabIndex。当按下键盘上的tab按钮时,它会给出下一个tab的顺序。(注意*:它在注释中,因为它不能完全回答整个问题)您需要调整控件的选项卡顺序:好的,我将TabIndex设置为2。。。。它现在工作正常了:)谢谢,它解决了这个问题。。谢谢,那么像CTRL这样的键盘快捷键呢+A@user3837889关于您所做的事情的信息不足,因此此捷径不再有效。@user3837889只有当您将焦点放在文本框上时,此捷径才有效。您是否覆盖了任何按键或按下事件?#@user3837889请检查文本框的
ShortCutsEnabled
属性。我做了一个编辑是的,我只是检查了一下,发现由于将多行属性设置为true,CTRL+A不起作用。是的,它解决了这个问题。。谢谢,那么像CTRL+AThat这样的键盘快捷键可以选择所有文本吗?是的,它可以。。。当我输入用户名并想按CTRL+a选择时,giong通过Mong Zhu共享的链接无法解决该问题。谢谢是的,它解决了这个问题。。谢谢,还有像CTRL+AIf这样的键盘快捷键呢?如果你用CTRL+A选择文本框中的文本,这已经是自动的了。由giong通过Mong Zhu共享的链接解决。非常感谢。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.A) // Select All
    {
        ((TextBox)sender).SelectAll();
        e.SuppressKeyPress = true;
        e.Handled = true;
    }
}