Gruppieren von Windows Forms-Radiobuttons mit verschiedenen übergeordneten Steuerelementen in C #

8

Ich habe eine Windows Forms-Anwendung, in der ich eine Reihe von RadioButtons habe. Diese RadioButtons befinden sich in einem FlowLayoutPanel , das sie automatisch für mich arrangiert. Alle RadioButtons, die direkt zum FlowLayoutPanel hinzugefügt werden, sind gruppiert, dh ich kann nur einen auswählen. Einige dieser RadioButtons sind jedoch mit einer TextBox verknüpft, sodass ich dort ein Argument liefern kann. Aber damit alles richtig arrangiert ist, füge ich dem FlowLayoutPanel ein Panel-Steuerelement hinzu, damit ich die Ausrichtung von RadioButton und TextBox relativ zueinander selbst steuern kann.

Diese RadioButtons haben nun ihre eigenen entsprechenden Panels als übergeordnete Controls und sind somit nicht mehr in der Radiogruppe mit den anderen RadioButtons enthalten. Ich habe gelesen, dass die RadioButtons, die sich im System.Web.UI -Namespace befinden, eine GroupName-Eigenschaft haben, aber leider fehlt ihren System.Windows.Forms Gegenstücken diese Eigenschaft. Gibt es eine andere Möglichkeit, diese Radiobuttons zu gruppieren? Muss ich onClick-Ereignisse selbst handhaben?

Danke, Jerry

    
Jerry 07.01.2011, 15:47
quelle

4 Antworten

11

Ich fürchte, Sie müssen das manuell handhaben ... Es ist eigentlich gar nicht so schlimm, Sie können wahrscheinlich den gesamten RadioButton in einer Liste speichern und einen einzigen Event-Handler für alle verwenden:

%Vor%     
Thomas Levesque 07.01.2011, 20:37
quelle
2

Ich stimme @JonH zu - die Verwendung von Tags ist der sauberste Weg, dies zu tun (imho)

%Vor%     
Vlad Ogay 04.04.2012 12:05
quelle
0

Hier ist eine kleine Verbesserung gegenüber der ersten Antwort: Erstellen Sie eine RadioGroup-Klasse, die die Gruppierungsfunktion kapselt und Unterstützung für die Standardtastaturnavigation (Aufwärts- / Abwärts-Tasten) hinzufügt und das Tab-Arbeiten ermöglicht.

Um es zu verwenden, deklarieren Sie einfach ein RadioGroup-Mitglied in Ihrem Formular und geben Sie es (nach InitializeComponent ()) ein, wobei Sie alle gewünschten Optionsfelder in der Gruppe in der richtigen Reihenfolge übergeben.

%Vor%

Eine Einschränkung: Die Auf- / Ab-Tasten funktionieren nicht gut mit der vorhandenen RadioButton-Klasse, da sie bereits die Auf- / Ab-Tasten bedient. Ein einfacher Weg, um RadioButton zu reparieren und die Handhabung von hoch / runter Tasten zu deaktivieren:

%Vor%     
David Airapetyan 18.04.2012 22:18
quelle
0

@Jerry, ich bin mit Windows Forms nicht so vertraut, aber ich werde eine Aufnahme machen. Wenn eine Eigenschaft namens Tag vorhanden ist, können Sie jede Optionsschaltfläche mit einem eindeutigen Tag versehen.

    
JonH 07.01.2011 15:51
quelle

Tags und Links