gpt4 book ai didi

c# - 使用键盘上的 Enter 等同于计算器

转载 作者:太空狗 更新时间:2023-10-30 01:34:37 25 4
gpt4 key购买 nike

当我尝试使用键盘上的 Enter 键时,它总是输入最近在屏幕上按下的数字。我想在键盘上使用 Enter 键,而不是输入用户最近在屏幕上按下的数字。

我正在使用 Visual Studio Community 2013 用 C# 编写一个计算器。

public calculatorForm()
{
InitializeComponent();
}

// Manages the numeracy and period buttons
private void mathematicalButtons_Click(object sender, EventArgs e)
{
if ((calculatorResults.Text == "0")||(operationPressed))
calculatorResults.Clear();

operationPressed = false;

Button a = (Button)sender;

if (a.Text == ".")
{
if(!calculatorResults.Text.Contains("."))
calculatorResults.Text = calculatorResults.Text + a.Text;
}
else
calculatorResults.Text = calculatorResults.Text + a.Text;
}

// Manages the addition, subtract, multiplication, and divide buttons
private void operatorButtons_Click(object sender, EventArgs e)
{
Button a = (Button)sender;

if (value != 0)
{
equalButton.PerformClick();
operationPressed = true;
operation = a.Text;
equationLabel.Text = value + " " + operation;
}
else
{
operation = a.Text;
value = double.Parse(calculatorResults.Text);
operationPressed = true;
equationLabel.Text = value + " " + operation;
}
}

// Manages the clear button
private void clearButton_Click(object sender, EventArgs e)
{
calculatorResults.Text = "0";
value = 0;
equationLabel.Text = "";
}

// Manages the clear entry button
private void clearEntryButton_Click(object sender, EventArgs e)
{
calculatorResults.Text = "0";
}

// Manages the equal button
private void equalButton_Click(object sender, EventArgs e)
{
equationLabel.Text = "";

switch (operation)
{
case "+":
calculatorResults.Text = (value + Double.Parse(calculatorResults.Text)).ToString();
break;

case "-":
calculatorResults.Text = (value - Double.Parse(calculatorResults.Text)).ToString();
break;

case "*":
calculatorResults.Text = (value * Double.Parse(calculatorResults.Text)).ToString();
break;

case "/":
calculatorResults.Text = (value / Double.Parse(calculatorResults.Text)).ToString();
break;

default:
break;
}

value = Double.Parse(calculatorResults.Text);
operation = "";
}

// Allows user to use computer keyboard to enter data
private void calculatorForm_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar.ToString())
{
case "0":
zeroButton.PerformClick();
break;

case "1":
oneButton.PerformClick();
break;

case "2":
twoButton.PerformClick();
break;

case "3":
threeButton.PerformClick();
break;

case "4":
fourButton.PerformClick();
break;

case "5":
fiveButton.PerformClick();
break;

case "6":
sixButton.PerformClick();
break;

case "7":
sevenButton.PerformClick();
break;

case "8":
eightButton.PerformClick();
break;

case "9":
nineButton.PerformClick();
break;

case ".":
periodButton.PerformClick();
break;

case "/":
divideButton.PerformClick();
break;

case "*":
multiplicationButton.PerformClick();
break;

case "-":
subtractButton.PerformClick();
break;

case "+":
additionButton.PerformClick();
break;

case "=":
equalButton.PerformClick();
break;

default:
break;
}
}
}

最佳答案

这里的问题是,当您按下回车键时,具有焦点的控件会捕获该事件。当你点击一个按钮时,你给了它焦点,所以下次你点击 enter 时,该按钮将捕获事件,在按钮的情况下,enter 键被解释为按下按钮。

您想要的是表单始终具有焦点,这样您就知道关键事件将始终转到表单而不是任何其他控件(例如按钮)。为此,请查看以下问题的答案:C# Stop Button From Gaining Focus on Click

如果您需要更多帮助,请告诉我!

关于c# - 使用键盘上的 Enter 等同于计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30005530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com