0

これは、SharpDevelop で記述された電卓用の私のコードです。番号を上書きする方法を知る必要があります。

私のコードでは、最初の番号にテキストメッセージを送信していて、追加ボタンを押した後、テキストボックスがクリアされます。

public partial class MainForm : Form
{
  public MainForm()
  {
    InitializeComponent();
  }

  double total1 = 0;
  double total2 = 0;

  void BtnOneClick(Object sender, EventArgs e)
  {
    txtDisplay.Text = txtDisplay.Text + btnOne.Text;
  }

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

  ...

  void BtnZeroClick(object sender, EventArgs e)
  {
    txtDisplay.Text = txtDisplay.Text + btnZero.Text;           
  }

  void BtnClearClick(object sender, EventArgs e)
  {
    txtDisplay.Clear();
  }

  void BtnPlusClick(object sender, EventArgs e)
  {
    total1 += double.Parse(txtDisplay.Text);
    txtDisplay.Clear();

    plusButtonClicked = true;
    minusButtonClicked = false;
    multiplyButtonClicked = false;
    divideButtonClicked = false;
  }

  ...

  bool plusButtonClicked = false;
  bool minusButtonClicked = false;
  bool multiplyButtonClicked = false;
  bool divideButtonClicked = false;
}
4

2 に答える 2

1

私はあなたが欲しいと思います

void BtnPlusClick(object sender, EventArgs e)
{
total1 += double.Parse(txtDisplay.Text);
txtDisplay.Text = total1.toString();

編集: .Clearテキストボックスからテキストを削除します..何か他のことをしたい場合は、何をしようとしているのかを再考する必要があると思います

これがあなたが望んでいたものではない場合、Edit2

    int total = 0;
    bool newNum = true;
    //1
    private void button1_Click(object sender, EventArgs e)
    {

        textBox1.Text = newNum ? "1" : textBox1.Text + "1";
        newNum = false;
    }
    //Add
    private void button2_Click(object sender, EventArgs e)
    {
        newNum = true;
        total += int.Parse(textBox1.Text);
        textBox1.Clear();
    }
    //Equals
    private void button3_Click(object sender, EventArgs e)
    {
        textBox1.Text = total.ToString();
    }
于 2012-12-13T15:46:00.227 に答える
0

次の行が原因です: txtDisplay.Clear(); メソッドで BtnPlusClick();

次の番号の提供を開始したときにのみクリアしたい場合-ブールフラグ(plusButtonClickedなど)をチェックするだけです-それらのいずれかがtrueに設定されている場合-その後、txtDisplay.Clear()を作成します。

于 2012-12-13T15:46:12.923 に答える