c#:使用enter键进行键控不起作用

c#:使用enter键进行键控不起作用,c#,windows,visual-studio,C#,Windows,Visual Studio,我正在玩一个基本的计算器windows应用程序,并试图让它在按下enter键时计算公式。目前,如果我给它2+2,然后点击我的“相等”按钮,它会注册为4,这是应该的。当我按下键盘上的enter键时,我希望得到相同的响应。我正在尝试使用以下代码执行此操作: if(e.KeyCode==Keys.Enter) { equal.PerformClick(); } 结果为2+22(最后输入的数字重复) 但是,如果我使用字母或F键(如下代码所示),它将返回正确答案: if(e.KeyCode==Keys.

我正在玩一个基本的计算器windows应用程序,并试图让它在按下enter键时计算公式。目前,如果我给它2+2,然后点击我的“相等”按钮,它会注册为4,这是应该的。当我按下键盘上的enter键时,我希望得到相同的响应。我正在尝试使用以下代码执行此操作:

if(e.KeyCode==Keys.Enter)
{
equal.PerformClick();
}
结果为2+22(最后输入的数字重复) 但是,如果我使用字母或F键(如下代码所示),它将返回正确答案:

if(e.KeyCode==Keys.C)
{
equal.PerformClick();
}
以下是“equal.PerformClick()”正在调用的代码,仅供参考

decimalnuma;
小数麻木;
小数结果=0;
//-------------------------------------------------------------
decimal.TryParse(this.first_num_label.Text,out numA);
decimal.TryParse(this.label1.Text,out numB);
if(this.operator_name.Text==“+”)
{
结果=numA+numB;
}
//---------------------------------------------------------------
如果(this.operator_name.Text==“-”)
{
结果=numA-麻木;
}
//---------------------------------------------------------------
if(this.operator_name.Text==“x”)
{
结果=numA*numB;
}
//---------------------------------------------------------------
如果(this.operator_name.Text==“/”)
{
结果=numA/numB;
}
//---------------------------------------------------------------
this.label1.Text=result.ToString();
this.first_num_label.Text=“”;
this.operator_name.Text=“”;
以下是完整的代码:

使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用System.Runtime.CompilerServices;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Forms;
名称空间计算项目
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
私有无效清除\u单击(对象发送者,事件参数e)
{
//this.label1.Text=“”;
this.label1.ResetText();
}
私有无效单击一次(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“1”;
}
私有无效两次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“2”;
}
私有无效三次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“3”;
}
私有无效四次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“4”;
}
私有无效五次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“5”;
}
私有无效六次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“6”;
}
私有void seven_Click(对象发送方,事件参数e)
{
this.label1.Text=this.label1.Text+“7”;
}
私有无效八次单击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“8”;
}
私有void nine_Click(对象发送方,事件参数e)
{
this.label1.Text=this.label1.Text+“9”;
}
私有无效零点击(对象发送者,事件参数e)
{
this.label1.Text=this.label1.Text+“0”;
}
private void plus_Click(对象发送者,事件参数e)
{
this.operator_name.Text=“+”;
如果(this.label1.Text!=“”)
{
this.first_num_label.Text=this.label1.Text;
}
this.label1.ResetText();
}
私有void减去单击(对象发送者,事件参数e)
{
this.operator_name.Text=“-”;
如果(this.label1.Text!=“”)
{
this.first_num_label.Text=this.label1.Text;
}
this.label1.ResetText();
}
私有void multiply\u单击(对象发送方,事件参数e)
{
this.operator_name.Text=“x”;
如果(this.label1.Text!=“”)
{
this.first_num_label.Text=this.label1.Text;
}
this.label1.ResetText();
}
私有void div_单击(对象发送方,事件参数e)
{
this.operator_name.Text=“/”;
如果(this.label1.Text!=“”)
{
this.first_num_label.Text=this.label1.Text;
}
this.label1.ResetText();
}
私有无效相等单击(对象发送者,事件参数e)
{
十进制单位;
小数麻木;
小数结果=0;
//-------------------------------------------------------------
decimal.TryParse(this.first_num_label.Text,out numA);
decimal.TryParse(this.label1.Text,out numB);
if(this.operator_name.Text==“+”)
{
结果=numA+numB;
}
//---------------------------------------------------------------
如果(this.operator_name.Text==“-”)
{
结果=numA-麻木;
}
//---------------------------------------------------------------
if(this.operator_name.Text==“x”)
{
结果=numA*numB;
}
//---------------------------------------------------------------
如果(this.operator_name.Text==“/”)
{
结果=numA/numB;
}
//---------------------------------------------------------------
this.label1.Text=result.ToString();
this.first_num_label.Text=“”;
this.operator_name.Text=“”;
}
private void element_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        // Do stuff here
    }
}
public Form1()
        {
            InitializeComponent();
            this.KeyPreview = true;
        }
 private void Form1_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyCode == Keys.Enter)
            {
                equal.PerformClick();
            }
         }
 private void one_Click(object sender, EventArgs e)
        {
            this.label1.Text = this.label1.Text + "1";
            textBox1.Focus();
        }

        private void two_Click(object sender, EventArgs e)
        {
            this.label1.Text = this.label1.Text + "2";
            textBox1.Focus();
        }
        ......
        ......