Toon posts:

[VB] alleen getallen in textbox

Pagina: 1
Acties:
  • 110 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo!
Hoe kan ik instellen dat je alleen getallen kan intikken in een textbox?

bdankt

Verwijderd

Topicstarter
niemand?

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
bij onKeyDown ofzoiets kun je checken of er een getalletje ingevoerd is, en zoniet keycode op 0 zetten ofzo.

Verwijderd

Topicstarter
Maar er is ook een script waarmee je gewoon de toesten At/mZ enzo blokkeert, dus als je een cijfer intikt dat je dan zo'n windows Ting geluid hoort. Zijn ook zat dialogs in Windows die dat hebben.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Als het om alleen gehele getallen gaat, kun je via de API (GetWindowLong de huidige style ophalen, en met SetWindowLong de style ES_NUMBER toevoegen). Zie MSDN voor meer info.
Als er decimalen in moeten (of je wil meerdere styles gaan ondersteunen) kun je met de keydown, keypress en change events invoer afvangen. Keydown kun je de keycode checken en op 0 zetten als 'ie de verkeerde waarde heeft, het change event is handig om te checken als er gepaste is, dat ook dan de invoer gechecked wordt (change event is niet handig om daar alle checks te doen, dat typt zwaar k*t voor de gebruiker. Keydown en keypress zijn daar het netste voor).

Exact expert nodig?


Verwijderd

Topicstarter
Ik vat het echt niet, ik ben geen geniale gast! Geef eens een scriptvoorbeeld van een textbox die textbox heet bijvoorbeeld aub, want het enige wat ik vat is het basicste van het basicste. sorry.

Verwijderd

Topicstarter
niemand???

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Hey relax :P 12 8 minuten is wel heel snel...
Heb je de helpfile weleens in gekeken? KeyDown event is voorlopig leuk om te beginnen ;)
KeyCode bevat een waarde wat de ascii waarde is van een toets. Nou ja, niet helemaal maar goed ;)
Verder heb je nog een bergje vbKeyX constanten, waarbij X een teken is. Met dus bv een check als KeyCode >= vbKey0 And KeyCode <= vbKey9 kun dus checken of de keycode tussen die van de 0 en de 9 ligt. Naja en zo kun je daar dus meer checks doen ;) Keycode = 0 zetten om de waarde op 0 te zetten (duh) zodat het teken dus niet verschijnt. KeyPress event heb je ook, die krijgt een KeyAscii mee als 1 van de parameters, en da's de echte ascii waarde (in keydown is een e en een E gelijk (vbKeyE), maar in het keypress event kun je wel detecten of het een hoofd of kleine letter is).
Hth...

Exact expert nodig?


Verwijderd

Topicstarter
Perfect, alleen ik weet niet wat het vbkeytje voor backspace is, weet iemand dat?

Verwijderd

Goh niet eens "niemand???" binnen 5 minuten?! |:(

't is vbkeyBack overigens

Verwijderd

Komt ie:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'alleen nummertoetsen, komma en backspace toelaten
If KeyAscii = 46 Then KeyAscii = 44

If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = 44 Or KeyAscii = vbKeyBack Then
Exit Sub
Else
KeyAscii = 0
Beep
End If

End Sub


Hiermee laat je alleen getallen toe, en de backspace & delete toets. Verder heb ik deze code in excel gebruikt in een nederlandse versie, dus mocht er alleen een "," gebruikt worden i.p.v. een ".", vandaar de regel :"If KeyAscii = 46 Then KeyAscii = 44".

Suc6 er mee.....

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Zucht.

Drie woorden: Masked Edit Control |:(

Vier letters: Afbeeldingslocatie: http://www.forum4u.f2s.com/images/smileys/rtfm.gif

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

Hier staat een voorbeeld hoe je het met API zou kunnen doen, maar dat is wel moeilijker dan het keypress voorbeeldje van hiervoor... http://www.vb2themax.com/Item.asp?PageID=CodeBank&ID=50

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Op woensdag 03 oktober 2001 19:46 schreef jaro het volgende:
[lap code]
Enne, de links en rechts pijltjes?

Masked Edit control is toch wel iets handiger.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Op donderdag 04 oktober 2001 10:33 schreef Gerco het volgende:

[..]

Enne, de links en rechts pijltjes?

Masked Edit control is toch wel iets handiger.
Die werken gewoon........
Pagina: 1