Announcement

Collapse
No announcement yet.

Wie kann ich herausfinden, welcher Radiobutton in einem Panel aktiv ist?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich herausfinden, welcher Radiobutton in einem Panel aktiv ist?

    Hallo,
    Wie kann ich herausfinden, welcher Radiobutton in einem Panel aktiv ist? Die Version, jedes mal alle forms-elemente durchzusuchen und auf Radiobutton zu testen finde ich ziemlich aufwendig, denn Panel weiss ja welcher aktiviert ist. Ausserdem hab ich dann immer noch keine Ahnung, welcher Index dieser Radiobutton hat. Man müsste dann immer noch die Abrfrage machen:
    If selectedRB == thisRB ... else if selectedRB == otherRB.... usw..
    In einem Forum hab ich was von RadioButtonList gelesen, dieses scheint jedoch nur für Websiten zu sein?

    Konkret geht es hier darum, in einem Config-File abzuspeichern, welcher Radiobutton gesetzt ist. Dazu wollte ich einen normalen Index verwenden, der Gelesen oder Gesetzt ist. Dies scheint in einem Model-View-Konzept relativ aufwendig zu werden, aber vielleicht sehe ich den einfachen Ansatz noch nicht.
    Vielen Dank zum Voraus,
    Thomas
    Zuletzt editiert von Thomas Iseli; 08.08.2009, 13:55.

  • #2
    Wenn es darum geht, alle Radiobuttons einer Form plus deren Status abzuspeichern, dann mache doch einfach eine Schleife über alle Controls in der Anwendung und wenn es ein Radiobutton ist, liest/setzt du die entsprechende Eigenschaft. Hier vielleicht ein kleines Beispiel dazu:
    Code:
    ...
    
    		private int rbAnz = 0, rbChecked = 0;
    		
    		void Button5Click(object sender, System.EventArgs e)
    		{
    			countRB(this);
    			MessageBox.Show(rbAnz.ToString() + " Radiobutton(s) gefunden, davon " + rbChecked.ToString() + " gecheckt");
    		}
    		
    		private void countRB(Control c1)
    		{
    			foreach (Control c2 in c1.Controls)
    			{
    				if (c2 is RadioButton)
    				{
    					++rbAnz;
    					if ((c2 as RadioButton).Checked) ++rbChecked;
    				}
    				else if (c2.Controls.Count > 0) countRB(c2);
    			}
    		}
    
    ...
    ... und da statt rbAnz und rbChecked hochzuzählen eben die entsprechenden Aktionen machen.

    bye,
    Helmut

    Comment

    Working...
    X