Visual Basic - pomoč

zakajaltersuxu

Fizikalc
19. jul 2007
1.608
88
48
Public Class Form1

Dim a, b, c As Single

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

a = TextBox1.Text
b = TextBox2.Text

c = a + b

TextBox3.Text = c

End Sub
End Class

Imam ta preprost programček za Windows Application.

Zanima me kaj moram v kodo napisati, da v primeru če uporabnik vpiše črke v polja namesto številk, ne zablokira, ampak sporoči da je prišlo do napake?
 

Fly

Guru
21. jul 2007
2.638
506
113
pomagaj si s to funkcijo

Private Function isDigit(dig As String) As Boolean
isDigit = (Asc(dig) >= Asc(0) And Asc(dig) <= Asc(9))
End Function
 

Fly

Guru
21. jul 2007
2.638
506
113
Se mi je kar zdelo da mora nekaj obstajati samo včasih je hitreje da jo sam napišeš
smile-1.gif
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Sej tvoja funkcija ne deluje pravilno
wink-1.gif
. Funkcija asc vrne ascii kodo enega znaka, ti ji pa podaš celi string. V funkcij bi se moral v zanki sprehoditi čez celi niz in testirati vsak posamezen znak v nizu.
 

Fly

Guru
21. jul 2007
2.638
506
113
vem, zato sem pa napisal naj si pomaga s to funkcijo. Nekaj pa mora tudi sam narediti
wink-1.gif
 

cbb

Chef
6. avg 2007
3.337
2
38
51
Nč več u Jesenicama... Zdej Horjul
Lahko si pomagaš z error handlerjem. To pomeni, da bo program ob napaki pač napisal nekaj. Recimo takole:

Public Class Form1

Dim a, b, c As Single

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

on error goto errormsg

a = TextBox1.Text
b = TextBox2.Text

c = a + b

TextBox3.Text = c

errormsg:
msgbox("Nekaj ne štima!")

End Sub
End Class
 

futuristic

geđet frik
Osebje foruma
13. jul 2007
7.892
633
113
Še rešitev tvojega problema. Ne garantiram, da je optimalna, dela pa 100%:
Koda:
        Dim tb1, tb2 As String
        Dim a, b, c As Single

        tb1 = TextBox1.Text
        tb2 = TextBox2.Text

        If (IsNumeric(tb1) And IsNumeric(tb2)) Then
            a = tb1
            b = tb2
            c = a + b
            TextBox3.Text = c
        Else
            MsgBox("Seštevaš lahko samo števila!")
        End If