Dynamisch erstellte Controls ansprechen

nordkap

Grünschnabel
Hallo zusammen

Ich generiere mit folgendem Code 5 Checkboxen:

Code:
Dim checkbox As System.Windows.Forms.CheckBox
For i = 1 to 5

                checkbox = New System.Windows.Forms.CheckBox
                checkbox.Size = New System.Drawing.Size(220, 16)
                checkbox.Location = New System.Drawing.Point(16, 24 + line_spacer)
                checkbox.Name = "test_checkbox" & i
                checkbox.Text = modem_names(i)
                Me.Controls.Add(checkbox)

                line_spacer = line_spacer + 20

Next

Nun möchte ich den Status dieser 5 Checkboxen abfragen können. In etwa so habe ich mir das vorgestellt:

Code:
test_checkbox1.checked = true
test_checkbox2.checked = true
test_checkbox3.checked = true
....

Leider funktioniert das nicht. Kann mir jemand erklären, wie ich auf diese Checkboxen zugreifen kann? Irgendwie sollte doch das über die "name" Eigenschaft gehen?

Bin für jeden Tipp dankbar.

Gruss nordkap
 
Hallo nordkap!

In C#:
Code:
foreach ( Control c in Me.Controls ){
	if ( c.GetType == "System.Windows.Forms.CheckBox" )
		MesageBox.Show( ( (CheckBox) c).Checked );
}
oder besser
Code:
foreach ( Control c in Me.Controls ){
	CheckBox cb = c as CheckBox;
	if ( cb != null )	
		MesageBox.Show( c.Checked );
}
MfG, cosmo
 
Hallo

Besten Dank für deine rasche Antwort. Leider kapier ich das nicht.

Wie würde zum Beispiel der Code aussehen um die dritte Checkbox (test_checkbox3) anzusprechen?

Besten Dank

Gruss nordkap
 
Habe es doch geschafft. ;-)

Mit folgendem Code:
Code:
For Each ctl In Me.Controls

                If ctl.Name.StartsWith("modem_name3") = True Then
                          'weiterer Code

                End If

Next

Danke trotzdem für deinen Einsatz.

Gruss nordkap
 
Alternativ hättest du dir auch ein Array oder Liste erstellen können und die CheckBoxen dann in deiner Initialisierungsschleife zuweisen können.
 
Zurück