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 回答