Bagikan melalui


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