downhilltimer

Status
Niet open voor verdere reacties.

raymond4

Gebruiker
Lid geworden
2 jan 2014
Berichten
5
Knipsel.JPG
Knipsel 2.jpg

Beste allemaal

Ik ben nieuw op dit forum en ben op dit moment met visual basic bezig om di tonder de knie te krijgen.
Ik heb een downhill timer geprogrammeerd in Visual Basic 10 en als ik op de knoppen klik met de muis doet hij het.
Maar nu wil ik met de toetsen F10 t/m F11 de zelfde knoppen bedienen.
Met F10 kan ik hem starten dat doet het maar 1x als ik hem met de muis stop kan ik hem niet opnieuw starten met F10
Met F11 wil ik hem stoppen, maar dat doet hij helaas niet.
Met F12 wil ik hem resetten, maar dat doet hij ook niet.
Hoe kan ik op ieder moment met F10 starten, met F11 stoppen en met F12 resetten?
Al vast bedankt!
 
Hoi,

Als eerste: Welkom op Helpmij.nl! :)

De volgende keer kan je misschien beter je codes in code-tags plaatsen, dan heb je geen gedoe met plaatjes...

Dan: Een keydown-event van een button werkt volgens mij alleen als de button ook geselecteerd is. Dus als je de stop knop geselecteerd hebt, dan werkt alleen F11, enz.
Ik denk dat het helpt om alle checks voor de buttons te zetten in het form.keydown event. Maar ik weet het niet zeker.

Nog steeds zullen dan de codes alleen werken als het form geselecteerd is. Als je dan dus een anders applicatie op de voorgrond hebt runnen, zal het volgens mij niet werken. Er zijn wel manieren om dat te doen, maar het is niet heel makkelijk (daar helpen we dan ook bij ;))....

MartinJM
 
Bedank voor de info alvast,
Volgens mij heb ik de buttons ieder een keydown event gegeven.

Private Sub Button1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown
If e.KeyCode = Keys.F10 Then
Timer1.Enabled = True
End If

End Sub

dat heb ik voor Button 1, 2 en 3 gedaan.

Maar het zal wel niet helemaal zo werken zoals ik het in Jip en Janneke taal bedenk!
 
Ja, klopt, maar dat is volgens mij juist deel van het probleem; je hebt namelijk maar 1 button geselecteerd, dus van alleen die ene button zal het keydown event worden geactiveerd.

Even een voorbeeldje: Je hebt net op start gedrukt. Daardoor is button1 geactiveerd. Vervolgens druk je op F11. De keydown van button1 zal dan geactiveerd worden, waarna er dus niks gebeurt.

Daarvoor zal je dus een 'omweg' moeten vinden. Ik dacht eerst dat het keydown event van het form altijd geactiveerd zou worden, maar dat blijkt ook niet zo te zijn.

Ik denk dat de volgende code jouw probleem met de functie-toetsen oplost:
[CPP] Private Sub SubKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
''//Check de keycodes
If e.KeyCode = Keys.F10 Then

ElseIf e.KeyCode = Keys.F11 Then

ElseIf e.KeyCode = Keys.F12 Then

End If
End Sub

Private Sub Button1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown
''//Doorsturen naar de sub
SubKeyDown(e)
End Sub

Private Sub Button2_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button2.KeyDown
''//Doorsturen naar de sub
SubKeyDown(e)
End Sub

Private Sub Button3_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button3.KeyDown
''//Doorsturen naar de sub
SubKeyDown(e)
End Sub

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
''//Doorsturen naar de sub
SubKeyDown(e)
End Sub
End Class[/CPP]

Dan nog steeds zal het niet werken als je applicatie niet op de 'bovengrond' staat in windows.

MartinJM
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan