2016-06-26 51 views
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; 
     } 
    } 
} 
+4

实际上,您是否将NumberPressed连接为按钮的事件处理程序,即如果您插入一个,调试程序是否会在NumberPressed中创建断点? – DAXaholic

+0

还不知道该怎么做。我仍然是一个新手抱歉。例如,我会在button1_click内创建一个新的事件处理程序,并将其链接到NumberPressed?我将如何做到这一点?我认为(发件人为Button).Text将接收按下的任何按钮的文本属性? –

+0

如果你没有连接你的NumberPressed方法作为按钮的事件处理程序,那么它永远不会被调用,因此你的(sender作为Button).Text永远不会被执行。如果你甚至无法用调试器检查这个问题,那么你最好带一个完整的教程,因为我们目前无法帮助你,没有把一些基本知识视为理所当然。如果你使用'教程视觉工作室计算器'的搜索引擎,你会发现很多教程通过它... – DAXaholic

回答

0

是你之后,我走进在Visual Studio中“活动”和链接的点击事件NumberPressed它的工作。谢谢你的帮助。

相关问题