Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Cancel checkedchanged-Event eines Radiobuttons
chanderegg
myCSharp.de - Member



Dabei seit:
Beiträge: 101
Herkunft: Solothurn CH

Themenstarter:

Cancel checkedchanged-Event eines Radiobuttons

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
chanderegg
myCSharp.de - Member



Dabei seit:
Beiträge: 101
Herkunft: Solothurn CH

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

uhm dann verwende doch ein return; um die Methode vorzeitig zu verlassen...

[offtopic]IsChecked ist eine EIGENSCHAFT und keine methode, sieh dir den Link nochmal an ;-)[/offtopic]
MfG
ProGamer
private Nachricht | Beiträge des Benutzers
chanderegg
myCSharp.de - Member



Dabei seit:
Beiträge: 101
Herkunft: Solothurn CH

Themenstarter:

beantworten | zitieren | melden

habe ich mir auch schon überlegt aber wo setz ich dann den radiobutton neu. ich weiss ja nicht welcher event als nächstes kommt.

[offtopic] hab leider keine ahnung was ein toggle-button ist aber ich benütze das hier RadioButton.checked
[/offtopic]
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

[offtopic]Ahh sry mein Fehler, IsChecked ist für wpf[/offtopic]

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
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.174

beantworten | zitieren | melden

Hallo chanderegg,

s.a. [FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung
private Nachricht | Beiträge des Benutzers