所以,这是主要的想法,我正在尝试制作一个计算器 .
private void _1_button_Click(object sender, RoutedEventArgs e)
{
resultBoxText += "1";
resultBox.Text = resultBoxText;
}
private void _2_button_Click(object sender, RoutedEventArgs e)
{
resultBoxText += "2";
resultBox.Text = resultBoxText;
}
private void _3_button_Click(object sender, RoutedEventArgs e)
{
resultBoxText += "3";
resultBox.Text = resultBoxText;
}
private void plus_button_Click(object sender, RoutedEventArgs e)
{
resultBoxText += "+";
resultBox.Text = resultBoxText;
}
private void minus_button_Click(object sender, RoutedEventArgs e)
{
resultBoxText += "-";
resultBox.Text = resultBoxText;
}
上面的代码是为用户输入数字或操作数时文本框中的文本更改 . 现在,我如何进行实际计算?在一个单独的函数(带参数)?是一个足以容纳所有操作数的变量还是应该创建一个数组?如何输入,我如何将它们添加到一起?例如:我按“2”然后按“”然后按“3”,我如何在结果中收集它们?我真的不知道如何开始:/
2 回答
如果你只想添加/减去1,2,3,4那么一个变量就足够了 . 只需在事件处理程序中进行所有必要的计算即可 .
我最近尝试过做同样的事情 . 我想出了以下非常简单的解决方案 . 首先,添加对COM库的引用
MSScriptControl
(how to add and remove references in VS) . 然后,在所有数字按钮点击事件之后:为你的equals按钮添加一些代码:
只需少量代码,就可以使用“7 * 9-6 3/6”这样的字符串,并返回“57.5”的正确答案 . 但是,我必须提到的一件事是,它无法正确处理像“1(1)”这样的字符串 . 从技术上讲,它应该将其视为“1 * 1”,但它只会引发错误 . 所以,我不得不做一些编码来解决这个问题 . 但是当你来到它时我会让你穿过那座桥...... :)
我可能会添加一件事:如果您的数字按钮都包含"1"或"2"或"+"的简单文本,那么您可以大量压缩按钮点击次数 .
然后,对于 all 您的数字按钮,只要单击它们,就可以将它们引用到num_button_click代码 . 这也适用于所有操作员按钮("+") .
另一方面,如果您的按钮包含“click for one”等文本,那么只需坚持原始代码;不理我 .
我刚刚意识到你所有的点击事件都有
RoutedEventArgs
. 你在使用WPF吗?我只是假设它是winforms . 好吧,无论如何,代码应该仍然可以工作......我希望这就是你要找的东西 .