Jak wyczyścić dane z wszystkich tekstbox'ów na formie?
Po dłuższej przerwie czas wrócić do pracy :)
Załóżmy, że na formie mamy 50 tekstbox'ów, czyszczenie ich zawartości w kodzie za pomocą każdorazowego odwołania się do nich było by męczące i zajęło by sporo miejsca w kodzie. Wyglądało by to mniej więcej tak:
TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" ... TextBoxN.text = ""
Można to zrobić w automatyczny sposób np tak:
For Each a As Control In form1.Controls If TypeOf a Is TextBox Then a.Text = Nothing End If Next
Czy nie wygląda to o wiele lepiej ?
Równie dobrze można tak postąpić z innymi kontrolkami np ProgressBar:
For Each control As Control In form1.Controls Dim pb As ProgressBar = TryCast(control, ProgressBar) If pb IsNot Nothing Then pb.Value = pb.Minimum End If Next
Czasami jednak nie chcemy aby na formie czyściły się wszystkie dane np w przypadku gdy chcemy wyczyścić wszystkie dane z kontrolek Label bo część to opisy a część stanowi wyświetlacz danych.
Najlepszą metodą wówczas jest trzymanie kontrolek (tych w których będziemy zmieniać dane) w kontenerach np TabControl, GroupBox oraz innych. Wtedy stosujemy odniesienie tylko do danego kontenera i tylko w nim działa nasz kod np:
For Each control As Control In form1.GroupBox1.Controls Dim pb As ProgressBar = TryCast(control, ProgressBar) If pb IsNot Nothing Then pb.Value = pb.Minimum End If Next