Hallo mal wieder
Ich habe einen Taschenrechner erstellt und mit einer Ausnahme versehen, die Konvertierungsfehler abfängt.
Mein Problem hierbei ist, dass das Programm weiterrechnet wenn der Anwender auf Berechnen klickt.
Dies soll aber unterbunden werden. Ist es irgendwie möglich, dass das Programm sich neu startet oder so was ähnliches? Also
dass das Programm die Werte einfach "vergisst"?
Hier mal der Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Taschenrechner { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private Single Ausnahme(TextBox wert2) { float wert1 = 0; try { wert1 = Convert.ToSingle(wert2.Text); } catch (FormatException) { MessageBox.Show("Es ist ein Konvertierungsfehler aufgetreten!\n\n Fehler: " + wert2.Text, "FEHLER!"); wert2.Select(); } return wert1;
} private void buttonBeenden_Click(object sender, EventArgs e) { Close(); }
private void buttonBerechnen_Click(object sender, EventArgs e) { float zahl1, zahl2, ergebnis = 0; bool divDurchNull = false; zahl1 = Ausnahme(textBoxZahl1); zahl2 = Ausnahme(textBoxZahl2); if (radioButtonAddition.Checked == true) ergebnis = zahl1 + zahl2; if (radioButtonSubtraktion.Checked == true) ergebnis = zahl1 - zahl2; if (radioButtonMultiplikation.Checked == true) ergebnis = zahl1 * zahl2; if (radioButtonDivision.Checked == true) { if (zahl2 == 0) divDurchNull = true; else ergebnis = zahl1 / zahl2; } if (divDurchNull == true) labelAnzeige.Text = "Nicht definiert!"; else labelAnzeige.Text = Convert.ToString(ergebnis); } } } |
Danke im Voraus!
mfg