Windows应用程序中的问题与错误处理和文本框显示

时间:2013-08-30 23:54:09

标签: c# windows forms

我写了一个非常简单的代码。我想让它为我做两件事

  1. 我希望它能够不断显示用户输入以及输出结果。现在它没有。我认为这是我的附加文字
  2. 的问题
  3. 我应该使用try和catch来进行错误处理吗?如果用户输入多个十进制数,我的代码崩溃了。我想知道如何使它恢复到一个小数并继续。
  4. 以下是我的代码片段。

    另外需要注意的是,只有在我的添加方法中我才开始使用appendtext,因为它不起作用而且我一直卡住了我停下来来到这里......

    private void button10_Click(object sender, EventArgs e) {
        textBox1.AppendText(".");
    }
    
    private void button3_Click(object sender, EventArgs e) {
        c = "+";
        num1 = double.Parse(textBox1.Text);
        textBox1.AppendText("+");
    }
    
    private void button12_Click(object sender, EventArgs e) {
        c = "-";
        num1 = double.Parse(textBox1.Text);
        textBox1.Text = "";
    }
    
    private void button13_Click(object sender, EventArgs e) {
        c = "*";
        num1 = double.Parse(textBox1.Text);
        textBox1.Text = "";
    }
    
    private void button14_Click(object sender, EventArgs e) {
        c = "/";
        num1 = double.Parse(textBox1.Text);
        textBox1.Text = "";
    }
    
    private void button4_Click(object sender, EventArgs e) {
        num2 = double.Parse(textBox1.Text);
        double result;
        if (c == "+") {
            result = num1 + num2;
            textBox1.Text = result.ToString();
        }
    

1 个答案:

答案 0 :(得分:0)

当你追加“+”时,num2等于value1 +“+”+ value2或其他东西,所以尝试使用这段代码

    private void button4_Click(object sender, EventArgs e) {
     double result;
     if (c == "+") {

        num2 = double.Parse(textBox1.Text.Split('+')[1]);//bad idea but will work
        result = num1 + num2;
        textBox1.Text = result.ToString();
    }
 }

也试试

    private void button4_Click(object sender, EventArgs e) {
     double result;
     if (c == "+") {

     num2 = double.Parse(textBox1.Text.SubString(textBox1.Text.LastIndexOf('+')+1));
        result = num1 + num2;
        textBox1.Text = result.ToString();
    }
 }

PS:尝试抓住需要!