在文本框c上按Enter后标记单击事件#

时间:2012-05-29 18:42:38

标签: c#

我在c#中有一个winforms登录,我希望在按下密码框上的回车键后尝试登录。

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

我的输入按键有。

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

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

任何想法都将不胜感激。

4 个答案:

答案 0 :(得分:4)

解决此问题的一个更简单的方法就是将表单上的AcceptButton设置为您的signinbutton,只要焦点位于表单上的任何位置,这将导致Enter默认点击按钮。

答案 1 :(得分: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
}

答案 2 :(得分:1)

您可以使用:

signinbutton.PerformClick();

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

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

答案 3 :(得分: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");
    }