sobota, 9 lipca 2016

Dział 24 już jest !

Witam, zapraszam do działu 24, dowiecie się w nim jak pobierać pliki z serwerów HTTP i FTP.
Niestety z czasem stoję ostatnio krucho stąd te obsuwy z dodawaniem kolejnych materiałów.
Pozdrawiam i miłego analizowania

piątek, 6 maja 2016

Witam !! dział 23 poradnika już jest !

Witam po dłuższej przerwie znalazłem chwilę aby kontynuować dzieło :) Zapraszam do 23 działu mojego poradnika. Główną motywacją były ostatnio pojawiające się komentarze, po których wiem przynajmniej, że ktoś to czyta i komuś pomogłem ;)

sobota, 16 kwietnia 2016

VB.NET Jak wyczyścić dane z wszystkich tekstbox'ów na formie?

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