2011-12-28 12 views
0

私はC#を勉強していますので、C#の構文に慣れるために何か練習をしています。私は普通の窓計算機と同様に見える電卓を作ることにしました。ボタンを押してC#電卓を入力する

ボタン「1」とテキストボックスを1つだけ作成しました。

このボタンを押すとテキストボックスに1を書き込むようにし、後で計算を行うためにテキストブックの数値と同じint変数を作成します。だから、 "int a"の値を変更することも、テキストボックスのテキストを変更することもできません。常に0になるので、常に01を表示します。 どうすれば正しい番号を表示し、値を変更できますか正しく? たとえば、ボタンを2回押して "int a"の値を11に変更すると、プログラムを11個表示することができますか?

public partial class Form1 : Form 
{ 
    int a; 
    string Sa; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Sa = a.ToString() + "1"; 

     textBox1.Text = Sa; 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

    } 
} 
+3

内でこのコードPT、その後btn_Clickにクリックプロパティを設定します。文字列と整数の違いを知っていますか? a.ToString()+ "1"は整数ではない文字列であることを理解しています。したがって、文字列に1を連結するだけです。 –

+0

前のテキストの前にテキストを追加:textBox1.Text = "1" + textBox1.Text; – adatapost

答えて

3
private void button1_Click(object sender, EventArgs e) 
{ 
    textBox1.Text += "1"; 
} 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    a = Int32.Parse(textBox1.Text);  
} 

それだけです..すべてのボタンをクリックするとtextBoxのテキストを変更し、変更されたテキストボックスごとに変数を変更します。テキストボックスにテキストを追加したいボタンの

2

あなたはそれについて、より効率的になりたい場合は、

a = a * 10 + 1; 

全くSa

を持っていないが、値が

a = int.Parse(Sa); 
textBox1.Text = Sa.TrimStart('0'); 

を使用して設定することができ

textBox1.Text = a.ToString(); 

オーバーフローが発生した場合は、BigIntegerを使用してください。

0

いくつかのオプションがあります。

nullをintにします。 textBox1テキストボックスのTextプロパティが空の場合、intはすでに

int? a; 

if (a.HasValue) 
{ 
} 
else 
{ 
} 

チェックを設定されているかどうかをチェックすることができますこの方法で(あなたがそれに追加する必要がないことを意味している)

if (textBox1.Text == string.Empty) 
{ 
} 
else 
{ 
} 
0
public void btnOne_Click(object sender, EventArgs e) 
     { 
      txtDisplay.Text = txtDisplay.Text + btnOne.Text; 

     } 

     private void btnTwo_Click(object sender, EventArgs e) 
     { 
      txtDisplay.Text = txtDisplay.Text + btnTwo.Text; 
     } 

// etc 
0

ご質問は明確ではない方法

private void btn_Click(object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
    // This will assign btn with the properties of the button clicked 
    txt_display.Text = txt_display.Text + btn.Text; 
    // this will append to the textbox with whatever text value the button holds 
} 
関連する問題