2013-09-29 2 views
0

Я начинаю на C# сейчас. У меня возникла проблема в решении вопроса, который мой лектор попросил меня сделать. Ниже приведен графический интерфейс.C# многострочный расчет

http://i.share.pho.to/daa36a24_c.png

Это код, который я сделал, но я не смог части кода я упомянул ниже

 using System; 
     using System.Collections.Generic; 
     using System.ComponentModel; 
     using System.Data; 
     using System.Drawing; 
     using System.Linq; 
     using System.Text; 
     using System.Windows.Forms; 

     namespace WindowsFormsApplication1 
     { 
      public partial class Form1 : Form 
      { 
       public Form1() 
       { 
        InitializeComponent(); 
       } 

       private void button1_Click(object sender, EventArgs e) 
       { 
        double num1; 
        double num2; 
        double answer; 

        num1 = double.Parse(textBox1.Text); 
        num2 = double.Parse(textBox2.Text); 


        textBox4.Text = Convert.ToString(answer); 
       } 
      } 
     } 

мне нужно будет добавить/вычесть/множественный/разделить первое и второе число так что он будет производить -> (первое число + операция + второе число = ответ).

Проблема заключается в том, что мне нужно выбрать операцию, щелкнув по символам +, -, *,/в текстовом поле. Я мог бы сделать это легко, используя переключатель или т. Д., Но мой лектор настаивает на этом формате. Пожалуйста, помогите в кодировании выбора «операция». Спасибо.

+1

Показать код вместо изображения .. –

+0

я ожидал, как я могу выбрать операцию (+, -, *, /), когда я нажимаю на него в текстовом поле и программы понимают какую операцию я выбираю. – Roshan

ответ

0

Вы используете OnIndexChanged событие из выпадающего списка, чтобы узнать, какой оператор был выбран.

Это позволит вам рассчитать каждый щелчок по списку.

Уведомление в методе событий operatorListBox1_SelectedIndexChanged, вы используете sender (объект, который был нажат), чтобы найти SelectedItem. Поместите это в строку (ее объект в списке), и появится ваш знак. (Не каламбур)

using System; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     private int firstNum = 2; 
     private int secondNum = 4; 
     private int answer; 

     public Form2() 
     { 
      InitializeComponent(); 
      operatorListBox1.Items.Add("+"); 
      operatorListBox1.Items.Add("-"); 
      operatorListBox1.Items.Add("*"); 
      operatorListBox1.Items.Add("/"); 
      //this next line would go in your designer.cs file. I put it here for completeness 
      this.operatorListBox1.SelectedIndexChanged += new System.EventHandler(this.operatorListBox1_SelectedIndexChanged); 
     } 

     private void operatorListBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      calculateAnswer(((ListBox)sender).SelectedItem.ToString()); 
     } 

     private void calculateAnswer(string sign) 
     { 
      switch (sign) 
      { 
       case "+": 
        answer = firstNum + secondNum; 
        break; 
       case "-": 
        answer = firstNum - secondNum; 
        break; 
       case "*": 
        answer = firstNum * secondNum; 
        break; 
       case "/": 
        answer = firstNum/secondNum; 
        break; 
      } 
      textBox4.Text = firstNum + " " + sign + " " + secondNum + " = " + answer; 
     } 
    } 
} 
+1

Спасибо, человек. Вы сделали мой день :) Теперь я знаю, что это listbox, а не текстовое поле, потому что я не мог сделать это в многострочном текстовом поле. – Roshan

1

Пока операции в ListBox, используйте:

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Text; 
    using System.Windows.Forms; 

    namespace WindowsFormsApplication1 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private void button1_Click(object sender, EventArgs e) 
      { 
       double num1; 
       double num2; 
       double answer; 
       num1 = double.Parse(textBox1.Text); 
       num2 = double.Parse(textBox2.Text); 
       if (listBox1.SelectedIndex == 0) 
       { 
       answer = num1 + num2 
       } 
       if (listBox1.SelectedIndex == 1) 
       { 
       answer = num1 - num2 
       } 
       if (listBox1.SelectedIndex == 2) 
       { 
       answer = num1 * num2 
       } 
       if (listBox1.SelectedIndex == 3) 
       { 
       answer = num1/num2 
       } 
       textBox4.Text = Convert.ToString(answer); 
      } 
     } 
    } 
+0

Благодарю вас за ваше усилие joe, ваш метод действительно сработал. – Roshan

+0

+1 для хорошей реализации. :) – paqogomez