Hallo zusammen
Ich habe ein Programm gschrieben, in welchem es 4 RadioButtons gibt. 3 davon sind für den User sichtbar.
Nun möchte ich, dass der User einen der 3 auswählt. Falls aber die Vorbedingungen nicht stimmen, möchte ich, dass der Event abgebrochen wird und wieder der 4 (unsichtbare) RadioButton angewählt wird.
Leider ist es nun so, dass ich keine Möglichkeit finde den Event zu stoppen (keine .Cancel-Methode). Im Netz wird davon gesprochen, dass man den OnCheckedChanged-Event der Basisklasse überschreiben soll. Ich kann dies aber leider nicht machen, da wir bestimmte Standartcontrols verwenden müssen.
Weiss vielleicht sonst noch jemand einen Lösungsweg?
Vielen Dank für Eure Hilfe
Also es geht dir darum, dass wenn die bedingung nicht erfüllt ist dass kein RadioButton ausgewählt ist richtig?
Dann benutzt doch eine Foreach-Schleife und setzte die IsChecked-Eigenschaft aus false
public void DeSelect()
{
foreach(Control in Controls)
{
if(Control == typeof(RadioButton))
{
Control.IsChecked= false;
}
}
}
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
Danke für die schnelle Antwort. Ich sehe aber 2 Probleme dabei.
uhm dann verwende doch ein return; um die Methode vorzeitig zu verlassen...
IsChecked ist eine EIGENSCHAFT und keine methode, sieh dir den Link nochmal an 😉
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
habe ich mir auch schon überlegt aber wo setz ich dann den radiobutton neu. ich weiss ja nicht welcher event als nächstes kommt.
hab leider keine ahnung was ein toggle-button ist aber ich benütze das hier RadioButton.checked
Ahh sry mein Fehler, IsChecked ist für wpf
ich gehe mal davon aus dass deine 4 RadioButtons sich einen Eventhandler teilen. Dann kannst du eine Variable vom Typ bool definieren und diese zu beginn der Methode abfragen.
bool MyFlag = false;
private void RadioButtonEventHandler(object sender, EventArgs e)
{
if(!MyFlag)
{
MyFlag = true;
//Hier überprüfungen
//und ggf. ein
DeSelect();
}
}
Sollte die Methode nochmal durchlaufen werden sollen, so wird das durch den Flag verhindert.
Methode soll nur das Prinzip verdeutlichen!
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
Hallo chanderegg,
s.a. [FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung