在C#中按下事件表单按钮按下的问题

时间:2015-08-30 04:55:24

标签: c# forms events button calculator

我是C#.net的新手。正如我所说,我有捕捉事件表格按钮按下的问题。 这是我的项目:Calculator.rar

我正在写一个计算器程序,当我用鼠标按下按钮时工作正常。但我想使用键盘输入数字,当我按Enter键时它将返回结果。所以我用过这个:

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而不是按钮=,结果将是错误的! 任何人都可以解释我的问题并告诉我如何解决它?非常感谢!

PS:抱歉我的英语不好请:)

1 个答案:

答案 0 :(得分:0)

你可以用这种方式 首先通过此代码

在表单Load Event中设置Active控件
this.ActiveControl = txtDuLieu;

然后在FrmCalculator_KeyPress方法

中添加以下案例
case    ((char) (13)):
                    //Call your Event
                    break;

13是EnterKey Ascii代码