Laden...

Cancel checkedchanged-Event eines Radiobuttons

Erstellt von chanderegg vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.250 Views
C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 12 Jahren
Cancel checkedchanged-Event eines Radiobuttons

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

P
660 Beiträge seit 2008
vor 12 Jahren

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"

C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 12 Jahren

Danke für die schnelle Antwort. Ich sehe aber 2 Probleme dabei.

  1. isChecked ist eine Methode. Ich müsste also checked nehmen.
  2. Die neue Methode DeSelect müsste nach der Auswahl eines RadioButtons durchgeführt werden. Das heisst der checkedChanged-Event wirft die Mehtode. Dort habe ich dann wieder das gleiche Problem, dass ich die Methode nicht abbrechen und erst einen neuen RadioButton anwählen kann, wenn der Event fertig ist
P
660 Beiträge seit 2008
vor 12 Jahren

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"

C
chanderegg Themenstarter:in
101 Beiträge seit 2008
vor 12 Jahren

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

P
660 Beiträge seit 2008
vor 12 Jahren

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"