Formda klavye giriş iletilerini işleme (Windows Forms .NET)
Windows Forms, klavye iletilerinin denetime ulaşmadan önce form düzeyinde işlenmesini sağlar. Bu makalede, bu görevin nasıl yerine getirileri gösterilmektedir.
Önemli
.NET 7 ve .NET 6 için Masaüstü Kılavuzu belgeleri yapım aşamasındadır.
Klavye iletisini işleme
Etkin formun KeyPress veya KeyDown olayını işleyip formun KeyPreview özelliğini olarak true
ayarlayın. Bu özellik, klavyenin formdaki denetimlere ulaşmadan önce form tarafından alınmasına neden olur. Aşağıdaki kod örneği, tüm sayı anahtarlarını algılayarak ve 1, 4 ve 7'yi kullanarak olayı işlerKeyPress.
// 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
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin