在我的c#win-form应用程序中,我使用用户定义的计算器win-form,可以通过鼠标点击或键盘小键盘来使用。我通过鼠标点击按钮但无法通过"按键"表格的方法。
实际上,按键方法在程序首次启动时起作用,但经过几次击键后,按键方法并没有捕捉到按键。我使用断点进行了测试,但是一段时间后就没有实现breakpoits。
Form&#39的keypreview属性设置为true。我也测试了有没有" e.Handled = true;"但没有意义。任何答案将不胜感激。
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
string key = "";
if (textBox1.Text.Equals("UNDEFINED")) textBox1.Text = "0";
else if (textBox1.Text.Equals("ERROR") || textBox1.Text == "FULL")
{
textBox2.Text = " ";
textBox1.Text = "0";
}
switch ((int)e.KeyChar)
{
case 8: BtnEraser(); lastWork= "btnErase"; break;// Backspace (erase);
case 13:
case 42:
case 43:
case 45:
case 47:
key = (int)e.KeyChar == 13 ? "Enter" : e.KeyChar.ToString(); BtnWork(key);
lastWork= key.Equals("Enter") ? "btnEqual" : "btnAdd"; break; // equal or math operations
case 27: textBox1.Text = "0"; textBox2.Text = " "; lastWork= "btnC"; break;// btnCe;
case 44: textBox1.Text = textBox1.Text.Comma(); lastWork= "btnComma"; break;
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
BtnNumber(e.KeyChar.ToString());
lastWork= "btn5"; break; // 0-9 Number-entry
default:
break;
}
e.Handled = true;
}