2016-06-26 2 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? Как мне это сделать? Я думал (отправитель как кнопка) .Text получит текстовое свойство любой кнопки нажатой? –

+0

Если вы не подключаете свой метод NumberPressed в качестве обработчика событий для кнопок, он никогда не вызывается, поэтому ваш (отправитель как кнопка) .Text никогда не выполняется. Если вы даже не можете проверить эту проблему с помощью отладчика, тогда вам будет лучше с полным учебником, поскольку мы в настоящее время не можем помочь вам, не принимая некоторые базовые знания как должное. Если вы используете поисковую систему с «учебным калькулятором визуальной студийной студии», вы найдете множество обучающих программ, проходящих через нее ... – DAXaholic

ответ

0

Да, вы были правы, после того, как я вошел в «События» в визуальной студии и связал события нажатия на NumberPressed он работал. Спасибо за вашу помощь.

Смежные вопросы