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.
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.
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET Desktop feedback