5

我们如何在 C# 中输入数字分组?我的代码有效,但仅适用于一个实例。我必须不断地点击它来对计算器中的每个数字进行分组。我们如何对它进行分组,以便如果我们单击它,它会分组每个数字(不仅仅是显示的数字),如果我们取消选中复选框,它不会?

这是当前代码:

NumberFormatInfo nFI = new CultureInfo("en-US", false).NumberFormat;


double int_value = Convert.ToDouble(textboxt1.text);


textbox1.Text = int_Value.ToString("N", nFI);
4

2 回答 2

2

听起来你在错误的地方调用格式。您可能希望textbox1.Text = int_Value.ToString("N", nFI);在您的值发生变化时调用它,以及单击复选框时(即,每当您单击计算器按钮或textboxt1.TextChanged其他按钮时),并且仅当您的复选框被选中时(if (checkbox1.Checked == true) textbox1.Text...)。它也应该在一个单独的函数中,在所有需要的地方调用。

为清晰起见进行编辑

您可能遇到的问题是您有多个来源正在更改textbox1. 您发布的代码很可能在某个checkbox_CheckChanged(sender, e)事件处理程序中。

您可能在其他地方也有代码(可能是计算器按钮或其他东西)会改变文本框中的值(比如......

double value = Convert.ToDouble(textbox.Text);
value = value + 1;
textbox1.Text = value.ToString();

例如,在 +1 按钮中?)

你想要做的是有一个单独的displayValue(double value)函数,它会一直正确格式化它,也许像......

private void SetDisplayValue(double value)
{
    NumberFormatInfo nFI = new CultureInfo("en-US", false).NumberFormat
    if (checkBox.Checked == true)
        textbox1.Text = value.ToString("N", nFI);
    else
        textbox1.Text = value.ToString();
}

以及您将在代码中设置 textbox1.Text 的每个地方,无论它是在按钮中还是在 _CheckChanged 中或诸如此类,而是调用该私有函数。

于 2010-03-02T01:52:29.200 回答
0

好的,这是代码:

使用系统;使用 System.Collections.Generic;使用 System.ComponentModel;使用 System.Data;使用 System.Drawing;使用 System.Text;使用 System.Windows.Forms;使用 System.Globalization;

命名空间_3rdQuarterExam_ADLM {公共部分类Form1:Form {

    public Form1()
    {
        InitializeComponent();
    }



    double x;
    double y;
    string operation;
    double memory;
    string current;


    private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button1.Text;
        }

        else
        {
            textBox1.Text += button1.Text;
        }

    }

    private void button13_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button13.Text;
        }

        else
        {
            textBox1.Text += button13.Text;
        }

    }

    private void button6_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button6.Text;
        }

        else
        {
            textBox1.Text += button6.Text;
        }

    }

    private void button16_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button16.Text;
        }

        else
        {
            textBox1.Text += button16.Text;
        }

    }

    private void button9_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button9.Text;
        }

        else
        {
            textBox1.Text += button9.Text;
        }

    }

    private void button3_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button3.Text;
        }

        else
        {
            textBox1.Text += button3.Text;
        } 
    }

    private void button10_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button10.Text;
        }

        else
        {
            textBox1.Text += button10.Text;
        } 


    }

    private void button15_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button15.Text;
        }

        else
        {
            textBox1.Text += button15.Text;
        }

    }

    private void button8_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button8.Text;
        }

        else
        {
            textBox1.Text += button8.Text;
        }

    }

    private void button4_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button4.Text;
        }

        else
        {
            textBox1.Text += button4.Text;
        }


    }

    private void Plus_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = Plus.Text;
        }
        else
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = Plus.Text;
            textBox1.Text = "";
        }
    }

    private void MINUS_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = MINUS.Text;
        }
        else
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = MINUS.Text;
            textBox1.Text = "";
        }
    }

    private void Times_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = Times.Text;
        }
        else
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = Times.Text;
            textBox1.Text = "";
        }
    }

    private void DIVIDE_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = DIVIDE.Text;
        }
        else
        {
            x = Convert.ToDouble(textBox1.Text);
            operation = DIVIDE.Text;
            textBox1.Text = "";
        }
    }

    private void button24_Click(object sender, EventArgs e)
    {
        y = Convert.ToDouble(textBox1.Text);

        if (operation == Plus.Text)
        {
            textBox1.Text = Convert.ToString(x + y);
        }
        else if (operation == MINUS.Text)
        {
            textBox1.Text = Convert.ToString(x - y);
        }
        else if (operation == Times.Text)
        {
            textBox1.Text = Convert.ToString(x * y);
        }
        else if (operation == DIVIDE.Text)
        {
            textBox1.Text = Convert.ToString(x / y);
        }
    }

    private void button25_Click(object sender, EventArgs e)
    {
        textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
    }

    private void button27_Click(object sender, EventArgs e)
    {
        textBox1.Text = "0.";
    }

    private void button26_Click(object sender, EventArgs e)
    {
        textBox1.Text = "0.";
        operation = Convert.ToString(ConsoleCancelEventArgs.Empty);
    }

    private void button21_Click(object sender, EventArgs e)
    {
        x = Convert.ToDouble(textBox1.Text);
        textBox1.Text = Convert.ToString(Math.Sqrt(x));
    }

    private void button19_Click(object sender, EventArgs e)
    {
        x = Convert.ToDouble(textBox1.Text);
        textBox1.Text = Convert.ToString(1 / x);
    }

    private void button20_Click(object sender, EventArgs e)
    {

        y = Convert.ToDouble(textBox1.Text);

        textBox1.Text = Convert.ToString(x * (y / 100));
    }

    private void button2_Click(object sender, EventArgs e)
    {
        x = Convert.ToDouble(textBox1.Text);

        if (textBox1.Text == "0.")
        {
            textBox1.Text = textBox1.Text;
        }
        else
        {
            textBox1.Text = Convert.ToString(-1 * x);
        }
    }

    private void button5_Click(object sender, EventArgs e)
    {
        if (textBox1.Text == "0.")
        {
            textBox1.Text = button5.Text;
        }
        else
        {
            textBox1.Text += button5.Text;
        }
    }

    private void copyToolStripMenuItem_Click(object sender, EventArgs e)
    {
        current = textBox1.Text;
    }

    private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
    {
        textBox1.Text = "";
        textBox1.Paste(current);
    }

    private void aboutUToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Form2 form = new Form2();
        form.Show();

    }

    private void button18_Click(object sender, EventArgs e)
    {
        memory = 0;
        textBox1.Text = "0.";
    }

    private void button12_Click(object sender, EventArgs e)
    {
        textBox1.Text = Convert.ToString(memory);
    }

    private void button17_Click(object sender, EventArgs e)
    {
        memory = 0;
        memory += Convert.ToDouble(textBox1.Text);
    }

    private void button11_Click(object sender, EventArgs e)
    {
        memory += Convert.ToDouble(textBox1.Text);
    }

    private void digitGroupingToolStripMenuItem_Click(object sender, EventArgs e)
    {

        if (digitGroupingToolStripMenuItem.Checked)
        {
            NumberFormatInfo nFI = new CultureInfo("en-US", false).NumberFormat;
            double int_value = Convert.ToDouble(textBox1.Text);
            textBox1.Text = int_value.ToString("N", nFI);
        }
        else
        {

        }
     }



    }

}

我们应该把它放在哪里?

于 2010-03-02T02:17:32.300 回答