我在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
}
}
任何想法都将不胜感激。
答案 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");
}