[vb.net] pressione tasto svincolato dall'evento che lo ha prodotto.......

mercoledì 24 ottobre 2007 - 13.54

fdr2000 Profilo | Newbie

Ciao a tutti.

Avrei necessità di poter manovrare i tasti funzione (F1-:-F12) in maniera libera senza alcuna associazione alla testbox o al bottone. Quindi non mi è sufficiente la gestione dell'evento keypress/keydown mettendo il focus su una textbox.

quindi io mando in esecuzione un programma premo f1 ad esempio, senza aver cliccato alcun bottone o messo il focus su alcuna textbox, e il programma mi chiude.

Cercando qui sul forum ho trovato e adattato questo codice (colgo l'occasione per ringraziare l'autore), ma non funziona, non succede niente, dove sbaglio ???

nella form1.load ho messo me.keypreview = true (che forse non serve..)

Private Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Keys) As Short

Private Sub object_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If GetAsyncKeyState(Keys.F1) < 0 0 Then
MsgBox("Stai premendo F1")
End If
End Sub

Grazie per le eventuali risposte e buona giornata a tutti

StefanoLep Profilo | Senior Member

Ciao, nella form_Load devi inserire Me.KeyPreview = True
nella Form_Keydown invece:

If e.KeyCode = Keys.F1 Then

MsgBox("F1")
e.Handled = True

End If

Per questo non ti serve nient'altro. Keypreview = True è quella proprietà che permette al form di ricevere l'input prima che arrivi a qualsiasi altro controllo della form stessa e per questo ci DEVE :-) essere. Spero di averti aiutato, ciao.

P.S. hai postato nella sezione VB6, per VB.Net ti conviene postare nella sezione specifica



Solo chi fa sbaglia :-)

fdr2000 Profilo | Newbie

GRANDE !!!! funziona !!!

ringrazio per la preziosa collaborazione e prego un mod di spostare il thread che ho messo erroneamente in sezione VB6 anzichè vb net nella sezione giusta.

Buona giornata a tutti.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5