0

我在 c# 中有一个 winforms 登录,我想让它在按密码框上的 enter 键后尝试登录。

我有一个用户名文本框、密码文本框和我提交的标签。

我有这个作为我的输入键。

    private void password_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)13)
        {

            signinbutton.Click();    //I was thinking something like this would work                        
        }
    }

任何想法将不胜感激。

4

4 回答 4

4

解决这个问题的一个更简单的方法是将表单上的 AcceptButton 设置为您的登录按钮,这将导致默认情况下 enter 按下按钮,只要焦点位于表单上的任何位置。

于 2012-05-29T18:45:58.770 回答
3

我认为您的代码当前如下所示:

private void password_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
         // what do i do here?         
    }
}
private void signinbutton_Click(object sender, EventArgs e) 
{
    //do stuff
    //do stuff
    //do stuff
}

这是我建议您执行的操作:

private void password_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
         DoStuff();
    }
}
private void signinbutton_Click(object sender, EventArgs e) 
{
    DoStuff();
}
private void DoStuff() {
    //do stuff
    //do stuff
    //do stuff
}
于 2012-05-29T18:49:05.180 回答
1

您可以使用:

signinbutton.PerformClick();

有关详细信息,请参见Button.PerformClick

如果密码 TextBox 是表单上唯一的文本框,您可能还需要考虑将该signinbutton按钮标记为默认按钮。这将导致此行为自动发生。

于 2012-05-29T18:45:50.963 回答
0

我制作了一个不可见的按钮并将其设置为当有人按下回车键时,它会触发该按钮。

  private void Textbox1_KeyDown(object sender, KeyEventArgs e)
    {
        //if the enter key is pressed it triggers the submit button.
        if (e.KeyCode == Keys.Enter)
        {
            buttonSubmit_Click((object)sender, (EventArgs)e);

        }
    }

    private void buttonSubmit_Click(object sender, EventArgs e)
    {
        //this is what the enter key triggers. 
        MessageBox.Show("you hit the enter key");
    }
于 2012-05-29T19:18:53.113 回答