C# 按ENTER键时是否单击触发按钮?

C# 按ENTER键时是否单击触发按钮?,c#,forms,button,textbox,C#,Forms,Button,Textbox,我已成功分配ENTER键以触发button1 click事件。当我点击回车键时,它会打开表单“开始菜单”。然而,它会这样做两次。不止一次。我在代码中找不到问题,有人能帮我吗 这是我的代码: public Login() { InitializeComponent(); this.textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown); } private void button1_Click_1

我已成功分配ENTER键以触发button1 click事件。当我点击回车键时,它会打开表单“开始菜单”。然而,它会这样做两次。不止一次。我在代码中找不到问题,有人能帮我吗

这是我的代码:

public Login()
{
    InitializeComponent();            
    this.textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
}

private void button1_Click_1(object sender, EventArgs e)
{

    if (somethingsomething == true)
    {
        Startmenu sm = new Startmenu();
        sm.Show();
    }

    else
    {
        MessageBox.Show("something");
    }    

}

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        button1.PerformClick();
        e.Handled = true;
    }
}

在button1\u单击1并检查调用堆栈以查看 谁在触发呼叫。

请尝试以下操作:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        button1_Click_1.Click(sender,e);
    }
}

不起作用。无论是否编辑此行“this.textBox1.KeyDown+=new keydeventhandler(textBox1_KeyDown);”以匹配。我得到以下错误:事件“System.Windows.Forms.Control.Click”只能出现在+=或-=?哦,很抱歉,在您的情况下应该是按钮1_Click_1而不是按钮1_Click,对不起,请检查我编辑过的答案,现在它工作得很好。请直接复制。现在它说:PresentationTier_Applikation.Login.button1_Click_1(object,System.EventArgs)”是一个“方法”,在给定的上下文中无效。现在不需要按键事件,只需编辑相同的代码,不管您发布了什么,只需替换textBox1_KeyDown()函数即可