Hallo,
wie kann ich mit Hilfe einer If anweisung überprüfen ob der Inhalt eines Textfeldes den Datentyp Integer hat oder nicht?
Gruß WebdevIGB
Eine TextBox gibt immer einen String über Ihre Text Eigenschaft zurück. Du kannst den Wert casten oder lässt nur die Eingabe von Zahlen zu.
Dort wo du testen willst, ob nur Zahlen eingetragen sind:
try
{
Convert.ToInt32(deineTextBox.Text)
}
catch(Exception)
{
e.Handle = false; // e oder wie auch immer deine Eventvariable heißt
}
Oder du fängst den Keypressevent ab, und dann machst du(womit du verhinderst, dass Nichtzahlen nicht eingetragen werden)
if ("1234567890\b".IndexOf(e.KeyChar.ToString())<0)
e.Handled = true;
Besuchen sie das VisualC++ - Forum
Oder du nimmst reguläre Ausdrücke 🙂 Ich mag die Variante mit dem Try-Catch überhaupt net, weils einfach Trial & Error Prinzip ist und das muß ja nicht sein. Leider verfügt nur Double über ein TryParse, womit es also ansonsten am einfachsten über Regex geht.
if (Regex.Match(input, @"^\p{Nd}+$").Success) // ist Integer;
Wenn dus ganz genau wissen möchtest mußt du zusätzlich noch Prüfen ob der Wert zwischen int.MinValue und int.MaxValue liegt. Einfacher wärs aber im dem Falle einfach die Eingabe direkt zu prüfen.
([bb]|[^b]{2})