Como: Determinar qual tecla modificadora foi pressionada.
Quando você cria um aplicativo que aceita as entradas de teclado do usuário, também convém monitorar as teclas modificadoras, como ALT, SHIFT e CTRL. Quando uma tecla modificadora for pressionada em combinação com outras teclas, ou com cliques do mouse, seu aplicativo pode responder de forma apropriada. Por exemplo, se a letra S for pressionada, isso pode simplesmente fazer um "s" aparecer na tela, mas se as teclas CTRL + S forem pressionadas, o documento atual pode ser salvo. Se você tratar o evento KeyDown, a propriedade Modifiers do KeyEventArgs recebidas pelo manipulador de eventos especifica quais teclas modificadoras são pressionadas. Como alternativa, a propriedade KeyData de KeyEventArgs especifica o caractere que foi pressionado, bem como qualquer tecla modificadora combinados com um OU bit a bit. No entanto, se você estiver tratando o evento KeyPress ou um evento do mouse, o manipulador de eventos não recebe essas informações. Nesse caso, você deve usar a propriedade ModifierKeys da classe Control. Em ambos os casos, você deve executar um bit a bit e do Keys valor e o valor que você está testando. O Keys enumeração oferece variações de cada tecla modificadora, portanto, é importante que você execute o bit a bit e com o valor correto. Por exemplo, a tecla Shift é representada por Shift, ShiftKey, RShiftKey e LShiftKey O valor correto para testar SHIFT como uma tecla modificadora Shift. Da mesma forma, para testar CTLR e ALT como modificadoras você deve usar os valores Control e Alt, respectivamente.
Observação |
---|
Os programadores Visual Basic também podem acessar informações de chave através de Keyboard propriedade |
Como: Determinar Qual Tecla Modificadora foi Pressionada
Use o operador bit a bit AND com a propriedade ModifierKeys e um valor da enumeração Keys para determinar se uma tecla modificadora em particular está pressionada. O código exemplo a seguir mostra como determinar se a tecla Shift está pressionada em um manipulador de eventos 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()); } }
Consulte também
Tarefas
Como: Determinar que CapsLock se está ligado no Visual Basic
Referência
Outros recursos
A Entrada do Teclado em um aplicativo de Formulários do Windows