char.IsDigit

<Cyclonit>

Ensign
Registriert
Mai 2011
Beiträge
137
Hi,

ich habe folgendes Problem:

Wenn ein in eine Textbox eingegebenes Zeichen eine Ziffer ist, soll diese Ziffer in einen Zwischenspeicher geschrieben werden. Mein aktueller Code dahingehend sieht so aus:

Code:
private void plans_distance_savetemp(object sender, KeyPressEventArgs e)
        {            
            if (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar))
            {
                // Wir brauchen die ID des Senders!
                Int32 ID = new Int32();

                String NAME = ((Control)sender).Name;
                String[] NAME_PIECES = NAME.Split('_');

                ID = Convert.ToInt32(NAME_PIECES[NAME_PIECES.Length - 1]);

                plans_distances_write[plans_scrollbar_vars[ID]] = Convert.ToInt32(plans_textbox_distance[ID].Text);
            }

und dieser Code wird immer ausgeführt wenn in einer von mehreren Textboxen (an deren Ende des Namens die IDs der Textbox stehen) eine Taste gedrückt wird. Es ist gut möglich, dass ich einfach nur zu bescheuert bin, dass ich den Fehler finde, aber meines Kenntnisstandes ist "2" eine Ziffer und müsste somit durch "Convert.ToInt32(plans_textbox_distance[ID].Text)" konvertiert werden können. Es funktioniert aber nicht :(

Findet jemand den Fehler? Ich befürchte das ich etwas vollkommen lächerliches übersehen habe ^^'

mfg
 
Der Code ist ok, ich gehe mal davon aus die Namen "xyz_Nr" sind, würde einfach mal testweise nach String NAME =... -> Console.WriteLine("Name: '"+NAME+"'"); einfügen.
 
Alternativ auch Console.WriteLine("Name: " + NAME); oder Console.WriteLine("Name: {0}", NAME);
Da kann man sich die vielen überflüssigen Gänsefüßchen sparen ...
 
Zurück
Oben