Cara menangani pesan input keyboard dalam formulir (Formulir Windows .NET)
Formulir Windows menyediakan kemampuan untuk menangani pesan keyboard di tingkat formulir, sebelum pesan mencapai kontrol. Artikel ini memperlihatkan cara menyelesaikan tugas ini.
Penting
Dokumentasi Panduan Desktop untuk .NET 7 dan .NET 6 sedang dibangun.
Menangani pesan keyboard
KeyPress Tangani atau KeyDown peristiwa formulir aktif dan atur KeyPreview properti formulir ke true
. Properti ini menyebabkan keyboard diterima oleh formulir sebelum mencapai kontrol apa pun pada formulir. Contoh kode berikut menangani KeyPress peristiwa dengan mendeteksi semua kunci angka dan mengkonsumsi 1, 4, dan 7.
// Detect all numeric characters at the form level and consume 1,4, and 7.
// Form.KeyPreview must be set to true for this event handler to be called.
void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= 48 && e.KeyChar <= 57)
{
MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' pressed.");
switch (e.KeyChar)
{
case (char)49:
case (char)52:
case (char)55:
MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' consumed.");
e.Handled = true;
break;
}
}
}
' Detect all numeric characters at the form level and consume 1,4, and 7.
' Form.KeyPreview must be set to true for this event handler to be called.
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs)
If e.KeyChar >= Chr(48) And e.KeyChar <= Chr(57) Then
MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' pressed.")
Select Case e.KeyChar
Case Chr(49), Chr(52), Chr(55)
MessageBox.Show($"Form.KeyPress: '{e.KeyChar}' consumed.")
e.Handled = True
End Select
End If
End Sub
Baca juga
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk