Msgbox to vyhazuje protože při stisknutí tlačítka Button1 otevíráte msgbox.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(overit(TextBox1.Text))
End Sub
Vy voláte funkci které předáte parametry a návratová hodnota z této funkce se vepíše do msgboxu. Ale další msgboxy vyhazujete i přímo v té funkci. Buď volejte pouze funkci bez msgboxu (v takovém případě můžete změnit Private Function na Private Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
overit(TextBox1.Text)
End Sub
A nebo v té funkci nevracejte returnem msgbox. Tzn. všude kde je Return Msgbox("nějaký text") smažte a vracejte jenom ten string který se vepíše do toho textboxu v události click tlačítka Button1. Tzn. něják takto:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(overit(TextBox1.Text))
End Sub
Private Function overit(ByVal celecislo As String)
If Not celecislo.Contains("/") Then
Return "Vaše rodné číslo prosím udávejte s lomítkem"
End If
Dim lomitko As String = celecislo.IndexOf("/")
Dim bezlomitka As String = (celecislo.Substring(0, lomitko) & celecislo.Substring(lomitko + 1))
If bezlomitka.Length <> 10 Then
Return "Promiňte,ale rodné číslo musí obsahovat přesně 10 číslic (Lomítko se nepočítá za číslici)"
End If
If bezlomitka Mod 11 = 0 Then
Return "Vaše rodné číslo je platné"
Else
Return "Neplatné rodné číslo"
End If
End Function
End Class
Možná tam bude nějaký překlep, píšu to naslepo.
|