Koska VB.NETissä ei ole Control Arrayta, omassa projeketissani törmäsin ongelmaan monen kontrollin tyhjentämiseen kerralla, ja sain ongelman ratkaistuksi näillä.
Nämä funktiot tyhjentävät formin kaikki Text- ja Checkbox-kontrollit, myös siinä tapauksessa että ne ovat esimerkiksi TabControl- tai GroupBox-elementtien pentuja.
Funktiot on hyvä laittaa vaikka Moduleen, ja kutsua niitä sitten kohteena olevalta formilta.
Apuna funktioiden koostamisesa on käytetty netistä löytyviä esimerkkejä, että mistään omista oivalluksista ei ole kyse.
Tekstiboksien tyhjennys
Public Function tyhjennaTekstiboxit(ByVal kontrollinHuoltaja As Control) 'tyhjentää tekstiruudut formilta Dim kontrolli As Control For Each kontrolli In kontrollinHuoltaja.Controls If TypeOf kontrolli Is TextBox Then kontrolli.Text = "" End If ' jos kontrollilla on pentuja, kutsuu funktio itseään sillä If kontrolli.HasChildren Then tyhjennaTekstiboxit(kontrolli) End If Next End Function
Checkboxien tyhjennys
Public Function tyhjennaCheckboxit(ByVal kontrollinHuoltaja As Control) 'tyhjentää checkboxit formilta Dim kontrolli As Control For Each kontrolli In kontrollinHuoltaja.Controls If TypeOf kontrolli Is CheckBox Then Dim ruksiboksi As CheckBox = CType(kontrolli, CheckBox) If ruksiboksi.Checked = True Then ruksiboksi.Checked = False End If End If ' jos kontrollilla on pentuja, kutsuu funktio itseään sillä If kontrolli.HasChildren Then tyhjennaCheckboxit(kontrolli) End If Next End Function
Esimerkkikutsut
'Tekstiboksien tyhjennys Call tyhjennaTekstiboxit(Me) 'Checkboxien tyhjennys Call tyhjennaCheckboxit(Me)
Aihe on jo aika vanha, joten et voi enää vastata siihen.