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
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%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%Tags und Links c# winforms radio-button