Archief - [VB.NET] toetsenbord keys disablen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

NeoCC

Legacy Member
voor mijn eindwerk moet ik een wiskundig programma schrijven.
maar nog een van de bugs in mijne programma is dat ik nog alle karakters kan ingeven in mijn textfields.
is er een manier, waardoor ik alleen maar 0 tot 9 en "-" "," of "." kan ingeven?


mvg
Neo

Cycloon

Legacy Member
Keypress opvangen van uw textfield, controleren welke toets is ingedrukt met e.KeyChar en wanneer het een karakter is die ge nie wilt in uw if zetten: e.Handled = true, dan zal het teken niet aan het tekstveld toegevoegd worden.

Yngwie

Legacy Member
of de textchanged van u veldje opvangen en controleren of de huidige waarde nog valid is, zoniet, de oude waarde terugzetten.

De oplossing van cycloon zal ook werken maar zal bv geen actie ondernemen wanneer de gebruiker iets in het veld plakt/paste ipv te typen

Cycloon

Legacy Member
Hmm idd nie gedacht aan plakken, je kan dat natuurlijk opvangen door te kijken of de control toets niet is ingedrukt: Control.ModifierKeys != Keys.Control

Jouw manier is een beetje minder elegant maar zal uiteraard ook werken.

Edit: Stukje code:

Code:
    Private Sub Textfield_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textfield.KeyPress
        If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "-" AndAlso e.KeyChar <> "." AndAlso asc(e.KeyChar) <> 8 OrElse Control.ModifierKeys = Keys.Control Then
            e.Handled = True
        End If
    End Sub

Natuurlijk ook de textbox een lege contextmenustrip geven, anders kunnen ze nog plakken met de rechtermuisknop.

Cycloon

Legacy Member
Nope, een maskedtextbox gaat dit probleem nooit kunnen opvangen omdat die masks te beperkt zijn.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan