有时候按键方法没有实现

时间:2018-03-10 12:30:02

标签: c# winforms keypress

在我的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;
}

0 个答案:

没有答案