C# Fehleingaben in Textfeld richtig behandeln

estre

Commander
Registriert
Dez. 2005
Beiträge
3.006
Hey Leute,

ich habe ein ziemlich triviales Problem in C#, bei dem ihr mir hoffentlich weiterhelfen könnt.

Und zwar habe ich eine Textbox und einen Button. Durch klicken auf den Button wird der Inhalt der Textbox auf einen bestimmten Wert geprüft. Wenn der erwartete Wert drin steht, dann soll die Button_Click-Methode weiterlaufen, wenn der Wert allerdings falsch ist soll eine erneute Eingabe des Wertes in die Textbox erfolgen (also vom Prinzip eine Art "goto") und die weitere Ausführung der Button_Click-Methode soll an dieser Stelle natürlich nicht erfolgen.

Nun meine Frage: Wie löst man das Ganze am elegantesten ?

Danke für Eure Hilfe!

Grüße
 
Einfach über eine IF oder CASE Anweisung auf deinen Inhaltprüfen und wenn du keinen Treffer auf den gewünschten Wert hast einfach ein RETURN in die die Click Funktion, dann wird der Rest nicht mehr weiter verarbeitet.
 
du machst dir eine "checkTextfield" methode die false zurückliefert wenn es nicht passt
Code:
OnButtonclicked(...)
{
    if(checkTextField())
   {
    // hier der code wenn alles ok
    }
    else
   {
        setfocus_to_textfield() ; // weis jetzt nicht auswendig wie die Funktion/Methode in c# heißt
    }
}  // und hier ist der Buttonclickhändler aus und nix passiert mehr...
 
nur nochmal in anderen worten:

wenn richtiger wert dann
blub
sonst
eingabefeld leer machen
fokus auf eingabefeld
ende
 
Vielen Dank für Eure schnellen Antworten.

tRITON schrieb:
Einfach über eine IF oder CASE Anweisung auf deinen Inhaltprüfen und wenn du keinen Treffer auf den gewünschten Wert hast einfach ein RETURN in die die Click Funktion, dann wird der Rest nicht mehr weiter verarbeitet.

Mit dem Return klappt es, vielen Dank!


du machst dir eine "checkTextfield" methode die false zurückliefert wenn es nicht passt
Auch ein guter Vorschlag.


Ich muss dazu sagen, dass meine Prüfungen ziemlich umfangreich sind, insofern macht zweitere Lösung mehr Sinn, da ich die Methode in eine Klasse auslagern kann, oder ?

Mit welchen Zugriffsmodifizierern sollte man diese Methode vorzugsweise (bzw. deren Klasse) dann ausstatten ? Ich mache immer alles auf "public static", ist das überhaupt zu empfehlen ?

Grüße
 
IMMER nach dem Sparsamkeits- bzw. Vernunftsprinzip handeln, also nein. Immer nur die Rechte verteilen die gerade benötigt werden (Stichwort Kapselung). Migration in eine extra Methode macht nur Sinn, wenn sie an mehr als nur einer Stelle benötigt wird, oder wenn sie so groß ist, dass es aus Übersichts- oder Wartungsgründen erforderlich ist.
 
Wenn du jetzt schon weißt das du checktextfield oft brauchst, bzw. das du es austuschen musst kannst es schon in eine klasse auslagern, ansonsten

YAGNI
 
Zurück
Oben