【发布时间】:2021-02-27 01:43:07
【问题描述】:
我正在编写一个计算器应用程序,我想将按钮与其关联的键盘键链接起来。当我单击键盘键时,它会填充文本框,但不会像单击表单按钮时那样保存值,并且操作键在不应该显示在文本框中时。
这是我的代码:
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.D0:
btn0.PerformClick();
break;
case Keys.D1:
btn1.PerformClick();
break;
case Keys.D2:
btn2.PerformClick();
break;
case Keys.D3:
btn3.PerformClick();
break;
case Keys.D4:
btn4.PerformClick();
break;
case Keys.D5:
btn5.PerformClick();
break;
case Keys.D6:
btn6.PerformClick();
break;
case Keys.D7:
btn7.PerformClick();
break;
case Keys.D8:
btn8.PerformClick();
break;
case Keys.D9:
btn9.PerformClick();
break;
case Keys.Add:
btnAdd.PerformClick();
break;
case Keys.Subtract:
btnSubtract.PerformClick();
break;
case Keys.Multiply:
btnMultiply.PerformClick();
break;
case Keys.Divide:
btnDivide.PerformClick();
break;
case Keys.Decimal:
btnDecimalPoint.PerformClick();
break;
case Keys.Back:
btnBack.PerformClick();
break;
default:
break;
}
}
private void NumberButton_Click(object sender, EventArgs e)
{
if (txtBoxString == "0") //Gets rid of unwanted leading zeroes
{
txtDisplayCalculations.Text = "";
txtBoxString = "";
}
string numberButtonClicked; //String will hold most recent digit
string senderString = sender.ToString(); //The the string associated with sender
string[] senderNumber = senderString.Split(); //Split the string
numberButtonClicked = senderNumber.Last(); //Get the button's text from the string
txtBoxString += numberButtonClicked; //Add the most recent digit to the number string
txtDisplayCalculations.Text = txtBoxString; //Display string in textbox
}
【问题讨论】:
-
我猜你应该将文本框设置为只读。
-
请提供有关“操作员键在不应该显示在文本框中的内容”的更多详细信息。
标签: c# .net visual-studio user-interface keyboard