2017-01-12 2 views
-4

でシンプルな電卓を作るの助けが必要。私は電卓のテキストボックスに複数の数字を入れることはできません。毎回私はそれが最初の1つを助ける必要性を置き換える秒数を入れて!は、テキストボックスに複数の番号を入れることはできません。私のシンプルな電卓プログラム

私は電卓のテキストボックスに複数の入力数ではなく、それはあなたが InputOutputArea.Text += Input.ToString(); を使用すべき第2の数の入力

namespace Calculator_Project 
{ 
    public partial class Form1 : Form 
    { 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void InputOutputArea_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void One_Click(object sender, EventArgs e) 
     { 
      int Input = 1; 
      InputOutputArea.Text = Input.ToString(); 
     } 

     private void Two_Click(object sender, EventArgs e) 
     { 
      int Input = 2; 
      InputOutputArea.Text = Input.ToString(); 
     } 

     private void Three_Click(object sender, EventArgs e) 
     { 

     } 

     private void Four_Click(object sender, EventArgs e) 
     { 

     } 

     private void Five_Click(object sender, EventArgs e) 
     { 

     } 

     private void Six_Click(object sender, EventArgs e) 
     { 

     } 

     private void Seven_Click(object sender, EventArgs e) 
     { 

     } 

     private void Eight_Click(object sender, EventArgs e) 
     { 

     } 

     private void Nine_Click(object sender, EventArgs e) 
     { 

     } 

     private void Eql_Click(object sender, EventArgs e) 
     { 

     } 

     private void AddB_Click(object sender, EventArgs e) 
     { 

     } 

     private void Minus_Click(object sender, EventArgs e) 
     { 

     } 

     private void MultiplyB_Click(object sender, EventArgs e) 
     { 

     } 

     private void DivideB_Click(object sender, EventArgs e) 
     { 

     } 

     private void Zero_Click(object sender, EventArgs e) 
     { 

     } 

     private void ResetB_Click(object sender, EventArgs e) 
     { 
      InputOutputArea.Clear(); 
     } 
    } 
} 
+0

使用 'InputOutputArea.Text + = 'の代わりに' '= InputOutputArea.Textテキストを置き換える代わりに追加することができます。 –

+0

あなたはクリックごとにテキストボックスの値を上書きしているので、はい、それはだ - その代わりに、あなたは "InputOutputArea.Text = String.Formatの(" {0} {1}」、InputOutputArea.Text、Input.ToString())を書くことができます。 " – Nirman

答えて

1

との最初の番号を置き換え超えることはできません(「+」に注意してください)でテキストボックスに追加する順序。あなたがここに最初のテキストの次の

+0

大変ありがとうbros –

+0

この行に負担がかかりすぎることを祈っています。 'int Input = 2;'、 'int'として宣言され、 ; '未ラッキー@ –

+0

はい、それは、コードの改良であろう。これをさらに効率的にコーディングするには、すべての数値ボタンに共通のイベントハンドラを使用し、送信ボタンのラベル(電卓ではおそらく問題となる数値)をInputOutputArea Textプロパティに追加するだけです。 –

1
private void Two_Click(object sender, EventArgs e) 
    { 
     int Input = 2; 
     InputOutputArea.Text += Input.ToString(); 
    } 

あなたの問題です:

InputOutputArea.Text = Input.ToString(); 

これは、代わりにそれに追加のテキストボックスの内容を置き換えます。

InputOutputArea.Text += Input.ToString(); 

上記のコードはご質問のとおりに行う必要があります。

+の文字列を連結することはかなり効率的ではないことに注意してください。絶対に必要な場合を除き、パフォーマンスクリティカルなコードではこれを行わないでください。そのような場合、Stringビルダーはほとんど常に良いです。

+0

この行に負担がかかりすぎることを祈っています。 'int Input = 2;'、 'int'として宣言されています。 –

1

に他のテキストを追加する= +を使用する必要があり

1

すべての答えは、現在と前のテキストの連結の話、しかし、私はそれ以上の何かを提案したいと思います。

あなたは(たとえばbtnOne意志が1を保持し、btnTwoが保持している各ボタンのテキストを使用すると、テキストボックスに表示する必要がある数になると、同じタスクを実行しているすべてのボタン、希望のために別のイベントハンドラを作成する必要はありません2など)。このテキストのメークを使用することにより、我々は、次のようなハンドラを再利用btnNumber_Clickはハンドラとすると、これは次のように定義されることができます。

private void btnNumber_Click(object sender, EventArgs e) 
{ 
    Button currentButton = sender as Button; 
    InputOutputArea.Text += currentButton.Text; 
} 
関連する問題