C#学院项目枚举

C#学院项目枚举,c#,C#,我现在正在做一个简单的计算器,让我们重新开始大学生活。 除了我试图通过键盘赋值外,一切都很正常,即按加号加减号 但是,当我输入一个数字并按下add按钮时,它会做所有正确的事情,但不会清除加号文本框。为什么会这样 private void tbOne_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Add) { total1 += double.Parse(tbOn

我现在正在做一个简单的计算器,让我们重新开始大学生活。 除了我试图通过键盘赋值外,一切都很正常,即按加号加减号

但是,当我输入一个数字并按下add按钮时,它会做所有正确的事情,但不会清除加号文本框。为什么会这样

private void tbOne_KeyDown(object sender, KeyEventArgs e)
{
        if (e.KeyCode == Keys.Add)
        {
            total1 += double.Parse(tbOne.Text);
            tbTwo.Text = tbOne.Text + btnPlus.Text;
            tbOne.Clear();

            plusButtonC = true;
            minusButtonC = false;
            divideButton = false;
            multiplyButton = false;
        }
}

您需要向事件指示您有按键,以防止按键被传递到标准Windows事件处理程序。还可以防止将密钥添加到文本框中。添加以下行:

e.Handled = true;
e.SuppressKeyPress = true;
值得注意的是,设置
SuppressKeyPress
也会设置
Handled
,但我喜欢明确


正如@grantwiney在评论中指出的,如果是WPF,则只需设置
Handled

尝试使用
KeyUp
事件。是否确实清除了正确的文本框?什么是“枚举”?这是WPF还是Winforms?请始终标记!这对双方都有效。如果是WPF,则只需使用
e.Handled
并省略
e.SuppressKeyPress