Csharp Taschenrechner

Vielen Dank erstmal für den Rechner!
Hab jetzt nur folgendes Problem:
Ich hab den Quellcode auf meine Anwendung übernommen, jetzt funktioniert das "=" Zeichen aber nicht. Woran könnte das liegen?

Mfg
Trax
 
Zuletzt bearbeitet:
Du musst die Anwendung entweder von Grund auf neu erstellen und immer zeilenweise meine Code reinkopieren. Oder du nimmst komplett mein Projekt.

Ich vermute mal das da irgendwelche Namen falsch gesetzt sind.
 
Ich will dich ja nicht nerven aber kriegst du den Rechner auch so hin dass wenn ich die 1 drücke, die 1 erscheint, wenn ich dann plus drücke, soll kein plus angezeigt werden sondern die 1 soll verschwinden, und wenn ich die 2 drücke und dann "=" soll nur das Ergebnis im Textfeld stehen

Mfg Trax

Ps: Wenn da keiner Bock drauf hat, kann mir dann wenigstens jemand sagen wie ich noch ne C-Taste dazu programmiere um die Anzeige zu löschen?
 
Zuletzt bearbeitet:
Âuch wenn das ganze Beispiel viellicht noch ohne auskommen würde, würde ich die erste eingegebene Zahl einfach zwischenspeichern, irgendwas wie

Code:
int zwischenergebnis=0;
bool zwischenergebnis_gesetzt=false;
bool reset=false;

Dann die Codes für die Buttons
Code:
private void Button1_Click(object sender, EventArgs e)
{
    if(reset==true)
    {
        textBox1.Text="1";
        reset = false;
    }
    else
        textBox1.Text+='1';
}

private void Button2_Click(object sender, EventArgs e)
{
    if(reset==true)
    {
        textBox1.Text="2";
        reset=false;
    }
    else
        textBox1.Text+='2';
}

private void ButtonPlus_Click(object sender, EventArgs e)
{
    if(zwischenergebnis_gesetzt==false && textBox1.Text != "")
    {
        zwischenergebnis = Int32.Parse(textBox1.Text);
        zwischenergebnis_gesetzt = true;
        reset = true;
    }
}

private void ButtonGleich_Click(object sender, EventArgs e)
{
    if(zwischenergebnis_gesetzt && textBox1.Text != "")
    {
        textBox1.Text = (zwischenergebnis+Int32(textBox1.Text)).ToString();
        zwischenergebnis_gesetzt = false;
        reset = true;
    }
}

Was macht der Code jetzt genau?
Klick auf den Knopf mit der '1':
Da reset noch auf false steht wird dem Textfeld einfach die Ziffer '1' als Zeichen (nicht als Zahl) hinzugefügt. (Ich hoffe du kennst dich mit Bedingungen aus [if(...) ... else ... ])
Das selbe passiert bei einem Klick auf den Knopf '2' halt mit dem Unterschied, dass die '2' hinzugefügt wird.
Wenn man jetzt auf die '+' Taste klickt und noch kein Wert zwischengespeichert ist, dann wird der Text im Textfeld in eine Zahl übersetzt (mithilfe der Funktion Int32.Parse(String s)) und in der Variable 'zwischenergebnis' gespeichert. Weiterhin wird die Variable 'reset' auf true gesetzt.
Klickt man jetzt wieder auf einen der Knöpfe mit einer Zahl, dann fügt das Programm die Zahl nicht einfach an den String an, sondern ersetzt den ganzen String durch einen String, der nur diese Zahl enthält, da man ja eine zweite Zahl eingeben möchte.
Wenn man nachdem man diese Zehl eingegeben hat auf gleich klickt, dann übersetzt das Programm mithilfe der Funktion von vorhin den Inhalt des Textfeldes in eine Zahl , 'reset' wird auf true gesetzt und zwischenergebnis_gesetzt auf false, so, dass man dann eine neue Rechnung anfangen kann. Man kann jedoch auch den Inhalt der Textbox weiter verwenden.
Hab das ganze mal schnell gecoded und angehängt.

Gruß, Paul
 

Anhänge

  • tr.zip
    32 KB · Aufrufe: 90

Neue Beiträge

Zurück