[C#] Zur Runtime erstellte Controls ansprechen (OHNE das Name-Property)

sNiff3ls

Grünschnabel
Hallo,

ich habe folgendes Szenario mit einem kleinen Problem:
Ich habe eine Form, auf der (in einem TableLayout (eher unwichtig)) ein Panel liegt (PnlQuestionSpacer). Diesem Panel werden zur Laufzeit mehrere Objekte (Controls) zugeordnet. (SplitContainer, GroupBoxes, Richtextboxes, Panel, Radiobutton etc.) Zur Veranschaulichung:
Code:
                                      -> Panel1 -> GroupBox -> Richtextbox  
PnlQuestionSpacer -> SplitContainer - 
                                      -> Panel2 -> GroupBox -> Panel -> RadioButton
                                                            -> n. Panel -> n.RadioButton
                                                            ...
Die Anzahl der RadioButton weiss ich vorher nicht (Erst zur Laufzeit)

Mein Problem ist jetzt, dass ich auf die einzelnen RadioButton zugreifen (bzw. deren Checked status abfragen) möchte, aber ohne durch zig Schleifen rennen zu müssen ala
Code:
foreach(Object obj in PnlQuestionSpacer.Controls)
{
   Control ctrl = obj as Control;
   if(ctrl.Name == "SplitContainer")
   {
      SplitContainer SplitCntr = obj as SplitContainer;
      foreach(Object obj1 in SplitContainer.Controls)
      {
         ...
      }
   }
}
sondern über Vererbung.
Theoretisch bzw. von der Logik her, ist mir klar wie dies funktioniert, jedoch nicht von der Umsetzung.
Also quasi ich "drücke" einer Klasse (Form oder Panel) eine public funktion "rein", die mir alle Objekte vom Typ RadioButton zurückgibt (bzw. deren Checked status).

Ich hoffe ich konnte mich verständlich ausdrücken und hoffe sehr, dass ihr mir helfen könnt.

Gruß
 
Speichere die RadioButtons doch während der Erstellung in ein Array/List, dann brauchst du nur eine Schleife zu durchlaufen.
 
Das problem ist nur, dass mein Ausbilder möchte, dass ich das mit Vererbung realisiere.

Aber dennoch Danke für die Antwort.

Gruß
 
Dann erbe von Panel und halte da dein Array.
Dann haste Vererbung mit drin :rolleyes:

Anders wüsste ich jetzt auch nicht auf Anhieb wie man sonst Vererbung da nutzen sollte.
 
Zurück