Come intercettare un tasto fisico ad ogni sua pressione

di il
7 risposte

Come intercettare un tasto fisico ad ogni sua pressione

Salve, ho cominciato a sperimentare con il vbnet. ho la necessita di dover intercettare i tasti freccia su e freccia giu' ad ogni sua pressione.
per poter spostare un form piccolissimo in verticale su tutto lo schermo.
ho provato gli eventi keypress e keydown e keyup ma non risolvo. scrivo sotto quello che ho fatto :

Private Sub frmMain_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown


Select Case e.KeyCode

Case Keys.Up


Me.Location = New Point(283, 410)
e.Handled = True



Case Keys.Down


Me.Location = New Point(283, 430)
e.Handled = True

End Select


End Sub

funziona, se' premo freccia in basso il form si sposta di una certa posizione e cosi anche se' premo la freccia in alto. ma finisce li. invece io ho bisogno che ogni volta che si preme il tasto freccia, il form si sposti nuovamente incrementando la nuova posizione. allora ho provato a mettere un ciclo for next, e poi uno annidato al interno di esso, ma cosi facendo lo spostamento avviene tutto in una volta, non passo passo.
c'e' una funzione apposita o un metodo per fare quello che desidero ?.

7 Risposte

  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    Devi impostare la nuova posizione rispetto a quella attuale. Ragionaci
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    Si anche io l'avevo pensato, pero' prima di insistere con i cicli for next non so' se' esiste una propria funzione o proprieta' specifica.tu vuoi dire che va bene usare un ciclo for next? e' solo cosi che posso risolvere ? . se' e' cosi resta da capire se' combinare il ciclo con qualche altra cosa.
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    No non ho parlato di ciclo for. Solo di leggere la posizione attuale e impostare la nuova in base a tale valore. Non devi usare altro
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    No non ho parlato di ciclo for. Solo di leggere la posizione attuale e impostare la nuova in base a tale valore. Non devi usare altro
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    Qui si tratta di logica e non di programmazione, in pratica
    posizione = posizione + incremento
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    Veramente l'avevo intuito che andava incrementata la sua posizione per farlo avanzare. avevo provato a incrementare la variabile che avevo messo al posto del valore di y .con i=i+20 per la freccia sotto e i=i-20 per la freccia sopra ma non funzionava perche' sbagliavo a dichiararla localmente . poi ragionandoci, ho capito che visual basic non la poteva vedere al esterno della routine quando finiva di leggere le righe. adesso funziona l' ho dichiarate nel Public Class Form.

    GRAZIE per gli spunti.
  • Re: Come intercettare un tasto fisico ad ogni sua pressione

    Puoi evitare di scomodare le variabili...
    
    Case Keys.Up
    	Me.Top -= 2
    	e.Handled = True
    
    Case Keys.Down
    	Me.Top += 2
    	e.Handled = True
    	
    Case Keys.Left
    	Me.Left -= 2
    	e.Handled = True
    
    Case Keys.Right
    	Me.Left += 2
    	e.Handled = True
    
Devi accedere o registrarti per scrivere nel forum
7 risposte