Frage Zifferngruppierung in .NET


Wie geben wir eine Zifferngruppierung in C # ein? Mein Code funktioniert aber nur für eine Instanz. Ich muss ständig darauf klicken, um jede Zahl im Taschenrechner zu gruppieren. Wie können wir es gruppieren, so dass, wenn wir darauf klicken, es jede Nummer (nicht nur die Nummer) gruppiert, und wenn wir das Kontrollkästchen deaktivieren, nicht?

Dies ist der aktuelle Code:

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


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


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

5
2018-03-02 01:41


Ursprung


Antworten:


Klingt, als würdest du die Formatierung an der falschen Stelle aufrufen. Du willst das wahrscheinlich anrufen textbox1.Text = int_Value.ToString("N", nFI); wenn sich Ihr Wert ändert, zusätzlich zu dem Zeitpunkt, an dem Sie auf das Kontrollkästchen klicken (dh wenn Sie auf die Schaltflächen Ihres Rechners oder auf klicken) textboxt1.TextChanged oder was auch immer), und nur wenn das Kontrollkästchen aktiviert ist (if (checkbox1.Checked == true) textbox1.Text...). Es sollte auch in einer separaten Funktion sein, die an allen Stellen aufgerufen wird, an denen sie benötigt wird.

Für mehr Klarheit bearbeiten

Das Problem, das Sie wahrscheinlich haben, ist, dass Sie mehrere Quellen haben, die die Anzeige ändern textbox1. Der von Ihnen gepostete Code ist in einigen Fällen am wahrscheinlichsten checkbox_CheckChanged(sender, e) Ereignishandler.

Sie haben wahrscheinlich auch Code an anderer Stelle (vielleicht Taschenrechner-Schaltflächen oder etwas), der den Wert in Ihrer Textbox ändert (etwas wie ...

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

in einer + 1-Taste, zum Beispiel?)

Was Sie tun möchten, ist ein separates displayValue(double value) Funktion, die es immer korrekt formatiert, vielleicht so etwas wie ...

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();
}

und an jedem Ort, an dem Sie in Ihrem Code textbox1.Text gesetzt hätten, unabhängig davon, ob es in einer Schaltfläche oder einem _CheckChanged oder whatnot steht, rufen Sie stattdessen diese private Funktion auf.


2
2018-03-02 01:52



Okay, das ist der Code:

Verwenden von System; Verwenden von System.Collections.Generic; Verwenden von System.ComponentModel; Verwenden von System.Data; Verwenden von System.Drawing; Verwenden von System.Text; Verwenden von System.Windows.Forms; Verwenden von System.Globalization;

Namespace _3rdQuarterExam_ADLM {     Öffentliche Teilklasse 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
        {

        }
     }



    }

}

Wo sollten wir es platzieren?


0
2018-03-02 02:17