11 Vb.Net druga forma i funkcja sprawdzająca dane

Druga forma

Tworząc jakiś większy projekt, jedna forma często nie wystarcza. Programista musi więc dodać nową formę do swojego projektu. Często takich form w jednym projekcie jest bardzo wiele.

Jak dodać następną formę ? W Visual Studio w menu Project otwieramy Add Windows Form...

Możemy też nadać jej nazwę. Zostawimy jednak tak jak sugeruje program czyli Form2.vb
Uruchamiamy nasz program ale widać jedynie 1 formę, więc gdzie jest druga ? Trzeba najpierw zainicjować jej otwarcie. Na pierwszą formę wstawmy więc button. W kodzie buttona wpiszmy:
Form2.Show()
Teraz możemy pracować również na drugiej formie!
Na Form1 dodajmy jeszcze jeden przycisk a w jego kodzie wpiszmy:
        If Form2.Visible = True Then
            Form2.Visible = False
        ElseIf Form2.Visible = False Then
            Form2.Visible = True
        End If
Co się dzieje? przyciskając Button2 forma pojawia się i znika. Znika co nie znaczy, że jest wyłączona. Po prostu jest dla nas niewidoczna.

Forma sama w sobie też ma sporo swoich właściwości. Wystarczy spojrzeć w okno properties.

Funkcja sprawdzająca dane

Mieliśmy już do czynienia z konwersją danych, możemy zatem sprawdzić co zawiera zmienna gdy próbujemy ją podstawić do konwersji np:
        Dim value As Integer
        If IsNumeric(TextBox1.Text) Then
            value = TextBox1.Text
            value = CInt(value)
            MessageBox.Show("Twoja liczba to " & value)
        Else
            MessageBox.Show("Nie wpisałeś poprawnej liczby", "Błąd", MessageBoxButtons.OK)
        End If
Funkcja IsNumeric zwraca wartość True jeżeli jej argumentem będzie liczba lub łańcuch składający się z samych cyfr.
Wyobraźmy sobie sytuacje gdy do TextBox1 wpiszemy coś innego niż cyfry, np. "Niedziela"
W normalnych warunkach (bez funkcji sprawdzającej) program zgłosił by błąd próby konwersji typu "Niedziela" na typ Integer. Program by się wysypał i do widzenia...
Zmienna value najpierw więc trafia do funkcji sprawdzającej czy jest liczbą, a ta z kolei znajduje się wewnątrz instrukcji warunkowej If, która pozwoli wykonać konwersję tylko i wyłącznie wtedy, kiedy zmienna value będzie zawierała liczbę.

Takich funkcji sprawdzających można używać jako pułapki na błędy użytkownika.
Można by powiedzieć, że powyższa instrukcja jest równoważna z tą poniżej ponieważ wykona taki sam kod w przypadku niepowodzenia.
        Try
            Dim value As Integer
            value = TextBox1.Text
            value = CInt(value)
            MessageBox.Show("Twoja liczba to " & value)
        Catch ex As Exception
            MessageBox.Show("Nie wpisałeś poprawnej liczby", "Błąd", MessageBoxButtons.OK)
        End Try

Załóżmy, że do TextBoxa nie wpisaliśmy nic i nacisnęliśmy Button. Value wówczas posiada wartość "". Jeśli byśmy chcieli w tym przypadku zareagować na taką ewentualność, to możemy dołożyć kolejny warunek If, który wykonałby dodatkowy blok kodu. Zobaczmy:
        Dim value As Integer
        If TextBox1.Text = "" Then
            MessageBox.Show("Nic nie wpisałeś", "błąd", MessageBoxButtons.OK)
        Else
            If IsNumeric(TextBox1.Text) Then
                value = TextBox1.Text
                value = CInt(value)
                MessageBox.Show("Twoja liczba to " & value)
            Else
                MessageBox.Show("Nie wpisałeś poprawnej liczby", "Błąd", MessageBoxButtons.OK)
            End If
        End If
Dla rozwiania wszelkich wątpliwości przetłumaczmy sobie powyższy kod:
Jeśli TextBox1 będzie pusty to wyświetli nam komunikat o tym, że nic nie wpisaliśmy. W innym przypadku sprawdzi czy TextBox1 zawiera liczbę. Jeśli tak to przypisze zmiennej value łańcuch tekstowy TextBox'a, zmienna zostanie przekonwertowana na typ Integer i wyświetlony zostanie komunikat z numerem twojej wpisanej liczby. W przeciwnym razie wyświetli komunikat o wpisaniu niepoprawnej liczby.

Do najczęściej używanych funkcji sprawdzających należą jeszcze
  • IsNothing - zwracającą True jeśli testowana zmienna ma wartość Nothing
  • IsDate - zwracająca True jeśli testowana zmienna jest datą
  • IsDBNull - zwraca True jeśli komórka bazy danych zwraca wartość null
Jest jeszcze sporo innych funkcji sprawdzających, których sam jeszcze nie znam lub nie używałem np:
  • IsArray
  • IsError
  • IsReference
  • IsInputKey
  • IsInputChar


Utworzono 09.09.2015

1 komentarz: