0
我正在制作一个基本的计算器,它使用(发件人为按钮)将相关按钮的文本属性发送到我用作名为'calcScreen'的显示器的文本框。 。这意味着如果我按下文本值为'1'的按钮,它应该填充文本框。构建运行良好,但当我按下我的数字按钮时,文本框保持空白。我错过了Visual Studio中的某个设置吗?或者代码错了?c# - 将按钮文本属性的值发送到文本框
using System;
using System.Windows.Forms;
namespace Calc
{
public partial class Form1 : Form
{
private double accumulator = 0;
private char lastOperaton;
public Form1()
{
InitializeComponent();
}
private void OperatorPressed(object sender, EventArgs e)
{
char operation = (sender as Button).Text[0];
if (operation == 'C')
{
accumulator = 0;
}
else
{
double currentValue = double.Parse(calcScreen.Text);
switch (lastOperaton)
{
case '+': accumulator += currentValue; break;
case '-': accumulator -= currentValue; break;
case '*': accumulator *= currentValue; break;
case '/': accumulator /= currentValue; break;
default: accumulator = currentValue; break;
}
}
lastOperaton = operation;
calcScreen.Text = operation == '=' ? accumulator.ToString() : "0";
}
private void NumberPressed(object sender, EventArgs e)
{
string number = (sender as Button).Text;
calcScreen.Text = calcScreen.Text == "0" ? number : calcScreen.Text + number;
}
}
}
实际上,您是否将NumberPressed连接为按钮的事件处理程序,即如果您插入一个,调试程序是否会在NumberPressed中创建断点? – DAXaholic
还不知道该怎么做。我仍然是一个新手抱歉。例如,我会在button1_click内创建一个新的事件处理程序,并将其链接到NumberPressed?我将如何做到这一点?我认为(发件人为Button).Text将接收按下的任何按钮的文本属性? –
如果你没有连接你的NumberPressed方法作为按钮的事件处理程序,那么它永远不会被调用,因此你的(sender作为Button).Text永远不会被执行。如果你甚至无法用调试器检查这个问题,那么你最好带一个完整的教程,因为我们目前无法帮助你,没有把一些基本知识视为理所当然。如果你使用'教程视觉工作室计算器'的搜索引擎,你会发现很多教程通过它... – DAXaholic