Principale utente con più risposte
Far "reagire" Visual Basic alla pressione di un QUALUNQUE tasto?

Domanda
-
Risposte
-
Ciao Migales,
inserisci il codice che vuoi fr eseguire alla pressione di un tasto qualunque nel
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
-
Ciao Migales,
per quanto riguarda i numeri da 0 a 9 prova a leggere cosa hai scritto nel tuo codice ...
If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then MsgBox("Hai premuto un tasto!") End If
cosa fa, descritto a parole, questo codice ?
poi
If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then MsgBox("Hai premuto un tasto!") If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then End If End If
Che senso ha la stessa condizione annidiata ?
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
-
Ciao Migales
per 'catturarare' il tasto Speciale TAB devi utilizzare questo codice
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown If e.KeyCode = Keys.Tab Then End If End Sub
I pulsanti invece luminosità, volume, ecc. sono gestiti via software non sempre puoi intercettarli dipende se generano l'evento di KeyDown o meno
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
Tutte le risposte
-
Ciao Migales,
inserisci il codice che vuoi fr eseguire alla pressione di un tasto qualunque nel
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
-
Ho provato il codice che mi propone la pagina che mi avete indicato e funziona parzialmente; infatti visual basic reagisce alla pressione di tutti i tasti eccetto TAB, i numeri da 0 a 9, stamp e rsist. Qualsiasi altro tasto lo rileva. Mi è bastato scrivere il codice:
Public Class form1 Private nonNumberEntered As Boolean = False ' Handle the KeyDown event to determine the type of character entered into the control. Private Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _ Handles textBox1.KeyDown ' Initialize the flag to false. nonNumberEntered = False ' Determine whether the keystroke is a number from the top of the keyboard. If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then MsgBox("Hai premuto un tasto!") If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then If e.KeyCode <> Keys.Back Then nonNumberEntered = True End If End If End If 'If shift key was pressed, it's not a number. If Control.ModifierKeys = Keys.Shift Then nonNumberEntered = True End If End Sub 'textBox1_KeyDown ' This event occurs after the KeyDown event and can be used ' to prevent characters from entering the control. Private Sub textBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) _ Handles TextBox1.KeyPress ' Check for the flag being set in the KeyDown event. If nonNumberEntered = True Then ' Stop the character from being entered into the control since it is non-numerical. e.Handled = True End If End Sub 'textBox1_KeyPress Private Sub form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load End Sub End Class
Perché non mi rileva tutti i tasti?
*edit: mi rileva anche i tasti speciali come il tasto che aumenta il volume (ho un portatile), ma di quella parte di tasti non me li rileva tutti (per esempio, i tasti per aumentare e abbassare la luminosità non me li rileva, ma non sono gli unici.)- Modificato Migales lunedì 14 novembre 2016 14:26
-
Ciao Migales,
per quanto riguarda i numeri da 0 a 9 prova a leggere cosa hai scritto nel tuo codice ...
If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then MsgBox("Hai premuto un tasto!") End If
cosa fa, descritto a parole, questo codice ?
poi
If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then MsgBox("Hai premuto un tasto!") If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then End If End If
Che senso ha la stessa condizione annidiata ?
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
-
Ciao Migales
per 'catturarare' il tasto Speciale TAB devi utilizzare questo codice
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown If e.KeyCode = Keys.Tab Then End If End Sub
I pulsanti invece luminosità, volume, ecc. sono gestiti via software non sempre puoi intercettarli dipende se generano l'evento di KeyDown o meno
Ciao
Renato Marzaro
Microsoft MVP .NET
- Proposto come risposta Renato Marzaro []Moderator domenica 20 novembre 2016 10:10
- Contrassegnato come risposta Nikola KochmalarskiMicrosoft contingent staff, Moderator mercoledì 30 novembre 2016 14:10
-
Ciao Migales
per 'catturarare' il tasto Speciale TAB devi utilizzare questo codice
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown If e.KeyCode = Keys.Tab Then End If End Sub
I pulsanti invece luminosità, volume, ecc. sono gestiti via software non sempre puoi intercettarli dipende se generano l'evento di KeyDown o meno
Ciao
Renato Marzaro
Microsoft MVP .NET
-
Ciao Migales
per 'catturarare' il tasto Speciale TAB devi utilizzare questo codice
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown If e.KeyCode = Keys.Tab Then End If End Sub
I pulsanti invece luminosità, volume, ecc. sono gestiti via software non sempre puoi intercettarli dipende se generano l'evento di KeyDown o meno
Ciao
Renato Marzaro
Microsoft MVP .NET