Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Vain numeroita textiin*VB*

kenkku [22.11.2003 12:38:16]

#

Minulla on text1 ja siihen pitäisi saada numeroita, muttei ollenkaan kirjaimia. jos siihen laitetaan kirjaimia niin ohjelma lätkäisee MsgBoxin joka huomauttaa jotain.

sooda [22.11.2003 12:39:45]

#

if IsNumeric(text1.text) then msgbox "Juu kul sii o vaan numeroi"
ton pitäs kait toimii...

sqwiik [22.11.2003 12:56:32]

#

Tai sitten tutkit joka kerta text1:n sisällön, kun sen sisältö muuttuu (text1.change) eli skannaat sen kirjainten varalta. Esim.

Sub Text1_Change ()
Dim a As Integer
  For a = 1 To Len(text1.Text)
    If Mid$(text1.Text, a, 1) < "0" Or Mid$(text1.Text, a, 1) > "9" Then
      MsgBox ("Vain numeroita, kiitos")
      'Tähän sitten, mitä tehdäänkin...
      Exit For
    End If
  Next a
End Sub

Antti Laaksonen [22.11.2003 13:46:15]

#

Tässä vielä kolmas ratkaisutapa. Jos tekstikenttään kirjoitettu merkki ei ole erikoismerkki eikä numero, näytetään virheilmoitus ja merkki poistetaan.

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii > Asc("9") Then
        MsgBox "Ei kelpaa!"
        SendKeys "{BKSP}" 'BackSpace-näppäimen "painaminen"
    End If
End Sub

Jos tekstin vaadittu muotoilu on monimutkainen (tässä tapauksessa ei ole) voi Masked Edit -kontrolli olla hyödyllinen.

kenkku [22.11.2003 14:38:02]

#

Kiitokset vaan, tuo IsNumeric riitti tähän hätään.

thefox [22.11.2003 18:52:11]

#

Laaksosen esimerkissä SendKeysin tilalla olisi parempi ehkä vaan sijoittaa KeyAscii:n arvo 0 (koska kirjain lisätään boksiin vasta kun _KeyPress on käsitelty), SendKeys kikkailut ovat aina mitä ovat.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta