Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat pengguna mengetikkan kunci ke dalam aplikasi, Anda dapat memantau tombol pengubah yang ditekan seperti SHIFT, ALT, dan CTRL. Ketika tombol pengubah ditekan dalam kombinasi dengan tombol lain atau bahkan klik mouse, aplikasi Anda dapat merespons dengan tepat. Misalnya, menekan tombol S dapat menyebabkan "s" muncul di layar. Jika tombol CTRL+S ditekan, sebagai gantinya, dokumen saat ini mungkin disimpan.
Jika Anda menangani peristiwa KeyDown, properti KeyEventArgs.Modifiers yang diterima oleh penanganan aktivitas menentukan tombol pengubah mana yang ditekan. Selain itu, properti KeyEventArgs.KeyData menentukan karakter yang ditekan bersama dengan tombol pengubah yang dikombinasikan dengan bitwise OR.
Jika Anda menangani peristiwa KeyPress atau peristiwa tetikus, pengendali peristiwa tidak menerima informasi ini. Gunakan properti ModifierKeys kelas Control untuk mendeteksi pengubah kunci. Dalam kedua kasus, Anda harus melakukan operasi bitwise AND pada nilai Keys yang sesuai dan nilai yang Anda uji. Enumerasi Keys menawarkan variasi setiap kunci pengubah, jadi penting bagi Anda untuk melakukan operasi AND bitwise dengan nilai yang benar.
Misalnya, nilai kunci berikut mewakili tombol SHIFT :
Nilai yang benar untuk menguji SHIFT sebagai kunci pengubah adalah Keys.Shift. Demikian pula, untuk menguji CTRL
Mendeteksi kunci pengubah
Deteksi apakah tombol pengubah ditekan dengan membandingkan properti ModifierKeys dan nilai enumerasi Keys dengan operator AND bitwise.
Contoh kode berikut menunjukkan cara menentukan apakah tombol
// Event only raised when non-modifier key is pressed
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
MessageBox.Show("KeyPress " + Keys.Shift);
}
// Event raised as soon as shift is pressed
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
MessageBox.Show("KeyDown " + Keys.Shift);
}
' Event only raised when non-modifier key is pressed
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs)
If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then
MessageBox.Show("KeyPress " & [Enum].GetName(GetType(Keys), Keys.Shift))
End If
End Sub
' Event raised as soon as shift is pressed
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs)
If ((Control.ModifierKeys And Keys.Shift) = Keys.Shift) Then
MessageBox.Show("KeyPress " & [Enum].GetName(GetType(Keys), Keys.Shift))
End If
End Sub
Lihat juga
.NET Desktop feedback