Avatar billede manhunter Nybegynder
02. november 2004 - 13:05 Der er 7 kommentarer

Kun Tal i Tekstfelt

Hey, sidder og er ved at lave et program, og hvordan får jeg lavet sådan at jeg KUN kan indtaste tal fra 0-10, hvis jeg trykker andet skal den slet ik skrive noget.
Avatar billede rbj_fp Nybegynder
02. november 2004 - 13:07 #1
if isNumeric(tekstfelt.value) then
    if (0 <= tekstfelt.value and tekstfelt.value <= 10) then
          ' alt ok
    else
        msgbox "tal er for lille eller for stort"
    end if
else
    msgbox "kun tal"
end if
Avatar billede kabbak Professor
02. november 2004 - 14:30 #2
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 59 Then
KeyAscii = 0
End If
End Sub
Avatar billede martin_moth Mester
02. november 2004 - 15:06 #3
manhunter - mener du ikke 0-9?

Eller mener du rent faktisk 1-10 - så man f.eks. ikke kan skrive 11? Eller 0? Eller 117?
Avatar billede manhunter Nybegynder
03. november 2004 - 08:43 #4
Rbj_fp kan ikke få din til at virke :\

Kabbak - Den virker sq :) Men den kan ikke slette, måske pga "tilbage" eller "slet" ikke er et tal :) Hvordan får man den til det :\??

Martin moth - Nix man skal kunne skrive alle tal, bare ikke bogstaver osv :)
Avatar billede kabbak Professor
03. november 2004 - 09:24 #5
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub 'backspace
If KeyAscii < 48 Or KeyAscii > 59 Then
KeyAscii = 0
MsgBox KeyAscii
End If
End Sub
Avatar billede kabbak Professor
03. november 2004 - 09:26 #6
fjern lige

MsgBox KeyAscii

det var til test for at kunne se de andre værdier
Avatar billede martin_moth Mester
03. november 2004 - 09:41 #7
Så brug kabbaks løsning :o)

Den virker ved, at hver gang du taster et tegn i textboxen aktiverer du _KeyPress eventen.

Dvs. hver gang du skriver et tegn i textboxen, bliver kabbaks kode afviklet.

Den tjekker hvilket tegn du netop har tastet ved at undersøge keyascii værdien, og ligger den mellem 49 og 58 (svarende til tegnene "1-2-3-4-5-6-7-8-9-0") sker der ingenting, men alle andre tegn slettes ved Keyascii = 0

Her den samme kode, på en lidt anden måde, der tillader backspace, og får Retur til at hoppe videre til næste kontrol


Private Sub text1_KeyPress(KeyAscii As Integer)
  Select Case KeyAscii
    Case vbKeyReturn 'Enter-tast
      SendKeys "{tab}" 'Sender tabulatortegn i stedet for
    Case vbKeyBack 'Backspace
    Case 48 To 57 'Tallene 0-9
    Case Else 'Alle andre tastetryk
      KeyAscii = 0 'Sletter det tastede tegn
  End Select
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester