• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

C# Taschenrechner - TextBox

Siegerone

Neues Mitglied
Abend,

Bräucht Hilfe bei meinem Taschenrechner in C#. Unzwar möchte ich einen Taschenrechner programmieren ähnlich dem Windows Taschenrechner, also 1 TextBox und den anderen Tasten.

Mein Problem ist, in der einen TextBox die Zahl1 von der Zahl2 zu unterscheiden.

Danke schonmal im Voraus


Code:
public partial class frm : Form
    {
        public frm()
        {
            InitializeComponent();
        }


        private void cmd_0_Click(object sender, EventArgs e)
        {   
            if (tb1.Text != "" ) 
            {
                tb1.Text += 0;
            }
        }

        private void cmd_1_Click(object sender, EventArgs e)
        {

            tb1.Text += 1;
        }

        private void cmd_2_Click(object sender, EventArgs e)
        {
            tb1.Text += 2;
        }

        private void cmd_3_Click(object sender, EventArgs e)
        {
            tb1.Text += 3;
        }

        private void cmd_4_Click(object sender, EventArgs e)
        {
            tb1.Text += 4;
        }

        private void cmd_5_Click(object sender, EventArgs e)
        {
            tb1.Text += 5;
        }

        private void cmd_6_Click(object sender, EventArgs e)
        {
            tb1.Text += 6;
        }

        private void cmd_7_Click(object sender, EventArgs e)
        {
            tb1.Text += 7;
        }

        private void cmd_8_Click(object sender, EventArgs e)
        {
            tb1.Text += 8;
        }

        private void cmd_9_Click(object sender, EventArgs e)
        {
            tb1.Text += 9;
        }


        private void cmd_plus_Click(object sender, EventArgs e)
        {
            tb1.Text += "+";

        }

        private void cmd_minus_Click(object sender, EventArgs e)
        {
            tb1.Text += "-";
        }

        private void cmd_mal_Click(object sender, EventArgs e)
        {
            tb1.Text += "*";
        }

        private void cmd_geteilt_Click(object sender, EventArgs e)
        {
            tb1.Text += "/";
        }

        
    
        
   

       
    }
}
 
Werbung:
Na, auch wenn du nur eine einzeilige Anzeige hast, die nur einen Wert anzeigt, intern hat das Programm 3 Variablen, 2 Werte und ein Rechenzeichen.
Unterscheiden kannst du die ganz einfach.
Solange das Rechenzeichen nicht gesetzt oder 0 ist, bist du in der ersten Zahl, sonst in der Zweiten.

Wenn dir das zu kompliziert ist, musst du im Prinzip überhaupt keine 2 Zahlen voneinander unterscheiden.
Du definierst einen String, der die gesamte Eingabe als Text enthält.
In der Anzeige schneidest du dann einfach den Substring aus, ab dem letzten Zeichen was nicht 0-9 und Komma war.
Bei Eingabe eines Rechenzeichens +-*/= überprüfst du, ob dies das erste Rechenzeichen ist, oder das Zweite.
Wenn es das zweite Rechenzeichen ist, dann ausrechnen, den String mit dem Ergebnis überschreiben und wenn das zweite Rechenzeichen kein = war, hängst du es an das Ergebnis hinten dran, für die nächste Rechnung.

Allerdings hast du in beiden Lösungen auch gleich die Nachteile des Windows-Taschenrechners (oder jedes anderen herkömmlichen Taschenrechners) mit drin.
Er kann nur einfachste Aufgaben und immer nur eine auf einmal. Selbst Sachen wie Punkt- vor Strichrechnung beherrscht er nicht.
 
Werbung:
Zurück
Oben