Hallo,
int i = 1;
ich habe eine Variable sowie eine Textbox. Nun möchte ich den Inhalt der Textbox mit dem Integer vergleichen, d.h. in der Textbox darf man nur eine Zahl eingeben, sonstiges wie Leerzeichen und Buchstaben sollen abgelehnt werden.
Ich habe dazu eine if-Abfrage erstellt und habe folgendes reingeschrieben:
if (Convert.ToInt32(textbox1.Text) < i {
MessageBox.Show(Fall1)
}
if (Convert.ToInt32(textbox1.Text) == i) {
MessageBox.Show(Richtig);
}
Würde man nun ein Buchstaben eingeben, würde das Programm sofort abstürzen. Ich möchte, aber, dass das Programm eine Warnung ausgibt. Dazu habe ich vieles probiert wie z.B. die if Abfragen zusammen zu verknüpfen und dann am Ende ein Else mit der Ausgabe, aber da schon am Anfang der if Abrage probiert wird, die Textbox z.B. (" ") zu konvertieren, erscheint eine Fehlermeldung.
Ich zweifele langsam. TryParse wäre meine andere Idee, aber wie soll ich am Ende einen Hinweis ausgeben, wenn es die Textbox keinen nummerischen Wert hat.
MfG
Verwende die Methoden Int32.TryParse etc.
Diese geben entsprechend ein false zurück, wenn der string nicht ein solcher Datentyp ist, wie er sein sollte.
Steht auch in der Dokumentation inkl. Beispielen 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
int i = 1;
int value;
if (Int32.TryParse(textbox1.Text, out value) && value < i) {
MessageBox.Show(Fall1)
} else {
MessageBox.Show("Falsch");
}
if (Int32.TryParse(textbox1.Text, out value) && value == i) {
MessageBox.Show("Richtig");
} else {
MessageBox.Show("Falsch");
}
Da macht er irgendwas falsch. Die Fallunterscheidung wird nicht wirklich durchgeführt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Da macht er irgendwas falsch.
Das ist keine sinnvolle Beschreibung. Was gibst Du ein, was erwartest Du, was passiert?