0

私は今C#を始めています。講師から求められた質問に取り組むのに問題がありました。以下はGUIです。

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);
              }
          }
      }

--> (最初の数値 + 演算 + 2 番目の数値 = 答え) が生成されるように、最初の数値と 2 番目の数値を加算/減算/乗算/除算する必要があります。

問題は、テキストボックスの + 、 - 、 * 、 / 記号をクリックして操作を選択する必要があることです。ラジオボタンなどを使えば簡単にできたのですが、講師がどうしてもこの形式に固執してしまいます。「操作」選択のコーディングの補助をお願いします。ありがとうございました。

4

2 に答える 2

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);
          }
      }
  }
于 2013-09-29T17:21:20.277 に答える
0

OnIndexChangedリストボックスのイベントを使用して、どの演算子が選択されたかを知ることができます。

これにより、リスト ボックスをクリックするたびに計算することができます。

operatorListBox1_SelectedIndexChangedイベント メソッドで、(クリックされたオブジェクト) を使用しsenderSelectedItem. これを文字列 (リストボックス内のオブジェクト) にキャストすると、記号が表示されます。(しゃれは意図されていません)

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;
        }
    }
}
于 2013-09-29T17:21:48.703 に答える