Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 13:39 Der er 10 kommentarer og
2 løsninger

Hjælp til Maskeret TextBox.

Jeg vil gerne have låst en Textbox, så man kun kan skrive bestemte ting ind i den.

Jeg har prøvet med det der hedder: Masked Textbox, men synes ikke helt det virker helt optimalt.

Måske er der nogen her der har en løsning?

1.: Der skal KUN skrive "," IKKE ".".
2.: Skal Altid se sådan her ud: ###,## (# = tal), hvis man vil skrive 5 vil den skrive 005,00...
3.: Og så må man selvfølgelig ikke kunne skrive bogstaver og andre tegn....

Nogen der kan hjælpe???
Avatar billede martin_moth Mester
27. januar 2004 - 13:54 #1
Mht. 1 og 3:

Du bruger key_press eventen til at tjekke hvilket tegn der blev tastet. Er det et "ulovligt" tegn, slettes det. Nedenstående kode tillader kun at der tastes .0123456789 i Text1:

Private Sub Text1_KeyPress(KeyAscii As Integer)
  Select Case KeyAscii
  Case Asc("0") to Asc("9")
  Case Asc(",") 
  Case Else
    KeyAscii = 0
  End Select
End Sub

Mht 2:

Jeg kender ikke masked textbox, men findes der ikke en standard funktion, kan du jo kode den selv. Jeg er ikke helt med på hvordan du vil have at den skal opføre sig, men du kan (næsten) altid kode dit til den funktionalitet du ønsker - men det er jo nemmer ehvis der findes en standard løsning :o)
Avatar billede martin_moth Mester
27. januar 2004 - 13:54 #2
Sorry, det er ,0123456789 der tillades, ikke .0123456789 som jeg skrev
Avatar billede l3kris Nybegynder
27. januar 2004 - 13:55 #3
Du kan for eksempel lave keytrappe for at sikre, at man kun kan skrive tal:

Private Sub txt1_KeyPress(KeyAscii As Integer)
    If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack _
            Or keyascii = 44 Then
        Exit Sub
    Else: KeyAscii = 0
        Beep
    End If
End Sub

Dernæst kan du bruge format til at ændre, når tekstfeltet mister fokus:

Private Sub txt1.LostFocus
txt1.Text = Format(txt1.Text, "###,##")
End Sub

/L3kris
Avatar billede overchord Nybegynder
27. januar 2004 - 14:01 #4
Kan ikke lige huske alle properties for et textbox i VB, men der burde vaere en input mask property som kan saettes som du allerede har beskrevet.
Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 14:17 #5
Det med ikke gyldige teg er fint nok, men det med ##,## virker ikke!!

Det skal jo være sådan at den skriver: 005,00 hvis jeg kun taster 5 ind.....
Avatar billede martin_moth Mester
27. januar 2004 - 14:33 #6
"Jeg kender ikke masked textbox, men findes der ikke en standard funktion, kan du jo kode den selv. Jeg er ikke helt med på hvordan du vil have at den skal opføre sig, men du kan (næsten) altid kode dit til den funktionalitet du ønsker  :o)"
Avatar billede kabbak Professor
27. januar 2004 - 14:44 #7
Text1.Text = Format(Text1.Text, "###,##000.00")
Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 15:25 #8
Sådan ja!!

Skal I have point??? Så læg lige et svar ok?
Avatar billede kabbak Professor
27. januar 2004 - 16:25 #9
et lille svar, jeg bryggede jo bare videre ;-))
Avatar billede martin_moth Mester
27. januar 2004 - 17:18 #10
Jeg svarede på 1 &/ 3 (som var samme spørgsmål, egentligt) og kabbak på 2 - ½ til hver. eller...
Avatar billede kabbak Professor
27. januar 2004 - 17:23 #11
ca. 10% til mig er rigeligt ;-))
Avatar billede -l_jogge_l- Nybegynder
27. januar 2004 - 19:51 #12
Sådan... det var vidst meget rimeligt!!
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