Jump to content

Visual Basic probleem


Recommended Posts

Geplaatst:

Ik wil voor een programma dat ik maak iets doen, maar tot nu toe is dat nog niet gelukt. Het is de bedoeling dat als ik op een toets druk (bijvoorbeeld een letter op het toetsenbord), dat er dan in een tekstbox of een NumericUpDown object het getal '1' bij het getal wat dat object al heeft wordt opgeteld. Met een button lukt me dat nog wel, maar hoe moet ik dan doen met het indrukken van een toets?

Geplaatst:

Volgens mij doe je dat door middel van het KeyPress Event. Ik heb 't zelf even met 't simpele Visual Basic van Word gedaan, dus het kan enigzins afwijken.

Maak bij een willekeurig object (een TextBox bijvoorbeeld) een KeyPress Event aan. Zet daarin de volgende code:

If KeyAscii = 46 Then
  TextBox.Text = TextBox.Text + 1
End If

KeyAscii is de waarde van de toets, dus als KeyAscii 46 is, moet de code verder gaan. 46 is het getal voor de punt, op deze site kun je de codes voor andere toetsen vinden. Kijk bij 'Dec' (Decimaal), de anderen zijn niet van toepassing. Daarna wordt er simpelweg opgeteld en de 'if' beëindigd.

Ik hoop dat dit aan je wens voldoet :)

Geplaatst:

Om welke versie van VB gaat het?

Want er zijn verschillende versies.

Als je in VB6 zoiets wilt doen, moet je dit in je code voegen:

Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = 46 Then

  Text1.Text = Text1.Text + 1

End If

End Sub

Het cijfer van KeyAscii verschilt voor elke toets.

Als je deze code toevoegt:

Private Sub Form_KeyPress(KeyAscii As Integer)

MsgBox KeyAscii

End Sub

En dan vervolgens op een toets drukt, krijg je een melding met de KeyAscii die bij de ingedrukte toets hoort.

Nog een andere tip, zet de "Enabled" eigenschap van het textboxje op False, anders komt bijvoorbeeld de punt in dat tekstvakje te staan en wordt de code niet uitgevoerd. ;)

Hopelijk helpt dit je een beetje op weg.

Als je nog meer vragen hebt, stel ze gerust. :Y

Mvg,

Flitskikker

Geplaatst:

Ik werk met Visual Basic 2008 Express Edition.

Ik heb nu dus een beetje uitgevogeld hoe het moet, maar het werkt alleen nog als ik de 'focus' op de desbetreffende control heb gezet. Kun je ook op een toets drukken en '1' bijtellen zonder dat bijvoorbeeld de textbox is geselecteerd (dus dat de 'focus' erop staat)?

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...