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 trueayarlayı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.