2012-05-29 49 views
0

我在c#中有一个winforms登录,我想让它在密码框上按回车键后尝试登录。在文本框上按回车后标签点击事件c#

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

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

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

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

任何想法,将不胜感激谢谢。

+2

你的问题在哪里? – mellamokb

+0

@mellamokb我认为这个问题是“我如何在我的表单中按一下按钮?”,基本上。 –

回答

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 
} 
+0

在我意识到我的DoStuff()并不是那么多东西之后采用了这种方法。谢谢, – user541597

1

您可以使用:

signinbutton.PerformClick(); 

详见Button.PerformClick

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

4

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

+0

这很好,只要这是表单中唯一的按钮,并且OP希望从表单中的任何位置按下按钮,而不仅仅是一个文本框。 –

+0

在这种情况下,您可以使用textbox.onfocus {acceptbutton = myButton;} –

+0

来设置它不需要是表单上唯一的按钮,只是他想要按下的那个按钮,而是假设他可以用当焦点位于表单上的任何位置时,不仅仅是在密码框中输入焦点时按下的键(但我认为这很少是这种情况)。 –

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"); 
    } 
相关问题