2016-06-26 88 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它的工作。謝謝你的幫助。

相關問題