如何在计算器中覆盖?

时间:2012-12-13 15:41:57

标签: c# calculator

这是我用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;
}

2 个答案:

答案 0 :(得分: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();
    }

答案 1 :(得分:0)

这是因为这条线:     txtDisplay.Clear(); 在你的方法     BtnPlusClick();

如果你只想在你开始提供下一个数字时清除它 - 只需chceck你的bool标志(加上按钮等等) - 如果它们被设置为true - 那么make     txtDisplay.Clear();