在 C# 中捕获事件表单按钮按下的问题
Problems with catching event form button press in C#
我是 C#.net 的新手。正如我所说,我在捕捉事件表单按钮按下时遇到了问题。
这是我的项目:Calculator.rar
我正在编写一个计算器程序,当我用鼠标在窗体中按下按钮时工作正常。但我想使用键盘输入数字,当我按 Enter 时它会显示 return 结果。所以我用了这个:
private void FrmCalculator_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
/*case Keys.Enter:
btnBang_Click(new object(), new EventArgs());
break;*/
case Keys.Back:
btnBackSpace_Click(new object(), new EventArgs());
break;
case Keys.Escape:
btnReset_Click(new object(), new EventArgs());
break;
}
}
还有这个:
private void FrmCalculator_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case '0':
btn0_Click(new object(), new EventArgs());
break;
case '1':
btn1_Click(new object(), new EventArgs());
break;
case '2':
btn2_Click(new object(), new EventArgs());
break;
case '3':
btn3_Click(new object(), new EventArgs());
break;
case '4':
btn4_Click(new object(), new EventArgs());
break;
case '5':
btn5_Click(new object(), new EventArgs());
break;
case '6':
btn6_Click(new object(), new EventArgs());
break;
case '7':
btn7_Click(new object(), new EventArgs());
break;
case '8':
btn8_Click(new object(), new EventArgs());
break;
case '9':
btn9_Click(new object(), new EventArgs());
break;
case '.':
btnCham_Click(new object(), new EventArgs());
break;
case '+':
btnCong_Click(new object(), new EventArgs());
break;
case '-':
btnTru_Click(new object(), new EventArgs());
break;
case '*':
btnNhan_Click(new object(), new EventArgs());
break;
case '/':
btnChia_Click(new object(), new EventArgs());
break;
}
}
它与按钮 1、2、3..ect 完美配合。但是如果我按Enter而不是按form中的button =,结果就会出错!
任何人都可以解释我的问题并告诉我如何解决它?非常感谢!
PS:抱歉我的英语不好:)
你可以用这种方式
首先通过此代码
在表单加载事件中设置活动控件
this.ActiveControl = txtDuLieu;
然后在 FrmCalculator_KeyPress
方法中添加 follow case
case ((char) (13)):
//Call your Event
break;
13为EnterKey Ascii码
我是 C#.net 的新手。正如我所说,我在捕捉事件表单按钮按下时遇到了问题。 这是我的项目:Calculator.rar
我正在编写一个计算器程序,当我用鼠标在窗体中按下按钮时工作正常。但我想使用键盘输入数字,当我按 Enter 时它会显示 return 结果。所以我用了这个:
private void FrmCalculator_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
/*case Keys.Enter:
btnBang_Click(new object(), new EventArgs());
break;*/
case Keys.Back:
btnBackSpace_Click(new object(), new EventArgs());
break;
case Keys.Escape:
btnReset_Click(new object(), new EventArgs());
break;
}
}
还有这个:
private void FrmCalculator_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case '0':
btn0_Click(new object(), new EventArgs());
break;
case '1':
btn1_Click(new object(), new EventArgs());
break;
case '2':
btn2_Click(new object(), new EventArgs());
break;
case '3':
btn3_Click(new object(), new EventArgs());
break;
case '4':
btn4_Click(new object(), new EventArgs());
break;
case '5':
btn5_Click(new object(), new EventArgs());
break;
case '6':
btn6_Click(new object(), new EventArgs());
break;
case '7':
btn7_Click(new object(), new EventArgs());
break;
case '8':
btn8_Click(new object(), new EventArgs());
break;
case '9':
btn9_Click(new object(), new EventArgs());
break;
case '.':
btnCham_Click(new object(), new EventArgs());
break;
case '+':
btnCong_Click(new object(), new EventArgs());
break;
case '-':
btnTru_Click(new object(), new EventArgs());
break;
case '*':
btnNhan_Click(new object(), new EventArgs());
break;
case '/':
btnChia_Click(new object(), new EventArgs());
break;
}
}
它与按钮 1、2、3..ect 完美配合。但是如果我按Enter而不是按form中的button =,结果就会出错! 任何人都可以解释我的问题并告诉我如何解决它?非常感谢!
PS:抱歉我的英语不好:)
你可以用这种方式 首先通过此代码
在表单加载事件中设置活动控件this.ActiveControl = txtDuLieu;
然后在 FrmCalculator_KeyPress
方法中添加 follow case
case ((char) (13)):
//Call your Event
break;
13为EnterKey Ascii码