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
Mehrere Gruppen von Radiobuttons untereinander synchronisieren
mrdjoker
myCSharp.de - Member



Dabei seit:
Beiträge: 125

Themenstarter:

Mehrere Gruppen von Radiobuttons untereinander synchronisieren

beantworten | zitieren | melden

Hallo zusammen,

ich stehe gerade auf dem Schlauch.. ich suche eine gute Möglichkeit,
wie ich Radiobuttons synchronisieren kann.

Ich habe 3 Groupboxen mit jeweils 4 Radiobuttons (siehe Bild).

Ich möchte die Radiobuttons so synchronisieren, dass immer alle Radiobuttons einer Zeile aktiviert werden.
Im Bild wäre das z.B. die oberste Zeile. Klickt man nun einen Radiobutton in der 2. Zeile an,
so sollen in allen Groupboxen die 2. Zeile markiert werden.

Über hilfreiche Ideen wäre ich sehr dankbar.

Gruß
mrdjoker
Attachments
private Nachricht | Beiträge des Benutzers
Roki
myCSharp.de - Member



Dabei seit:
Beiträge: 21

beantworten | zitieren | melden

Einfach bei einem OnCheckChange Event den Markierten ausfindig machen und die anderen beiden Controls ebenfalls auf gleicher höhe markieren

Die Dokumentation sollte dir alle Fragen beantworten
private Nachricht | Beiträge des Benutzers
mrdjoker
myCSharp.de - Member



Dabei seit:
Beiträge: 125

Themenstarter:

beantworten | zitieren | melden

Danke für die schnelle Antwort!

Ich wollte mir die Mühe eigentlich ersparen, bei jedem Radiobutton das OnCheckChange Event zu benutzen.

Das wären nämlich bei 4x3 Radiobuttons 12 Methoden.

Gibts da nichts eleganteres?
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.813
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Schau Dir auch bitte diese FAQ dazu an :

[FAQ] Event nur bei Benutzeraktion auslösen, nicht bei programmtechnischer Änderung

Ich würde für alle Buttons den gleichen Eventhandler registrieren, und dann sowas ausführen :

private void radioButton_CheckedChanged(Object sender, EventArgs e)
{
    if (_ignoreEvents)return;
    _ignoreEvents = true;
    foreach(GroupBox grp in this.Controls)
        foreach(Control ctl in grp.Controls)
            if (Math.Abs(ctl.TabStop - ((CheckBox).sender).TabStop) % 4 == 0)
                ((CheckBox)ctl.)Checked = true;
    _ignoreEvents = false;
}

Dazu müsstest Du noch die Reihenfolge der ersten Spalte ändern bzw. die Tabstops richtig setzen.

Nur so hingetippt, keine Garantie dass es auch so funktioniert.

Hinweis : Ist zwar kurz, aber nicht sehr übersichtlich :-(

Mehr Tipparbeit, aber leichter zu lesen :


CheckBox cb = (CheckBox)sender;
if (_ignoreEvents || !cb.Checked) return;
if (cb == CheckBox1 || cb == CheckBox5 || cb == CheckBox9) { CheckBox1.Checked = true; CheckBox5.Checked = true; CheckBox9.Checked = true; }
if (cb == CheckBox2 || cb == CheckBox6 || cb == CheckBox10) { CheckBox2.Checked = true; CheckBox6.Checked = true; CheckBox10.Checked = true; }
...


Grüße Bernd
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von BerndFfm am .
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
mrdjoker
myCSharp.de - Member



Dabei seit:
Beiträge: 125

Themenstarter:

beantworten | zitieren | melden

Vielen Dank BerndFfm,

genau sowas habe ich mir vorgestellt.

Besten Dank und einen schönen Abend noch
private Nachricht | Beiträge des Benutzers