Procedura: determinare quale tasto di modifica è stato premuto
Aggiornamento: novembre 2007
Quando si crea un'applicazione che accetta la pressione dei tasti da parte dell'utente, può rivelarsi necessario monitorare i tasti di modifica, quali MAIUSC, ALT e CTRL. Quando un tasto di modifica viene premuto in combinazione con altri tasti o con un clic del mouse, l'applicazione sarà in grado di rispondere in modo appropriato. Se ad esempio si preme la lettera S, verrà semplicemente visualizzata una "S" sullo schermo, mentre se si preme CTRL+S si potrebbe determinare il salvataggio del documento corrente. Se si gestisce l'evento KeyDown, la proprietà Modifiers della classe KeyEventArgs ricevuta dal gestore eventi specifica i tasti di modifica premuti. In alternativa la proprietà KeyData della classe KeyEventArgs specifica il carattere premuto nonché i tasti di modifica associati a un operatore OR bit per bit. Se tuttavia si gestisce l'evento KeyPress o un evento mouse, il gestore eventi non riceverà tali informazioni. In tal caso è necessario utilizzare la proprietà ModifierKeys della classe Control. Sia nell'uno che nell'altro caso è necessario eseguire un'operazione AND bit per bit del valore di Keys appropriato e del valore che si sottopone a verifica. L'enumerazione Keys offre variazioni di ogni tasto di modifica pertanto è importante eseguire l'operazione AND bit per bit con il valore corretto. Il tasto MAIUSC, ad esempio, è rappresentato da Shift, ShiftKey, RShiftKey e LShiftKey. Il valore corretto per verificare MAIUSC come tasto di modifica è Shift. Analogamente, per verificare CTRL e ALT come tasti di modifica è necessario utilizzare rispettivamente i valori Control e Alt.
![]() |
---|
I programmatori Visual Basic possono inoltre accedere a informazioni sui tasti mediante la proprietà Keyboard. Per ulteriori informazioni, vedere Oggetto My.Computer.Keyboard. |
Per individuare il tasto di modifica premuto
Per stabilire se è premuto un particolare tasto di modifica, utilizzare l'operatore AND bit per bit con la proprietà ModifierKeys e un valore dell'enumerazione Keys. Nell'esempio di codice seguente viene illustrato come determinare se il tasto MAIUSC è premuto nell'ambito di un gestore di eventi KeyPress.
Public Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then MsgBox("Pressed " + Keys.Shift.ToString()) End If End Sub
public void TextBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift) { MessageBox.Show("Pressed " + Keys.Shift); } }
private: void textBox1_KeyPress(Object^ sender, KeyPressEventArgs^ e) { if ((Control::ModifierKeys & Keys::Shift) == Keys::Shift) { MessageBox::Show("Pressed " + Keys::Shift.ToString()); } }
Vedere anche
Attività
Procedura: determinare se CapsLock è attivato in Visual Basic