Bagikan melalui


Menangani Input Pengguna

Topik ini menjelaskan peristiwa keyboard dan mouse utama yang disediakan oleh System.Windows.Forms.Control. Saat menangani peristiwa, penulis kontrol harus mengambil alih metode EventName yang dilindungi daripada melampirkan Ondelegasi ke peristiwa. Untuk ulasan peristiwa, lihat Menaikkan Peristiwa dari Komponen.

Catatan

Jika tidak ada data yang terkait dengan peristiwa, instans kelas EventArgs dasar diteruskan sebagai argumen ke Onmetode EventName .

Peristiwa Keyboard

Peristiwa keyboard umum yang dapat ditangani kontrol Anda adalah KeyDown, , KeyPressdan KeyUp.

Nama Acara Metode untuk Mengesampingkan Deskripsi Peristiwa
KeyDown void OnKeyDown(KeyEventArgs) Dimunculkan hanya ketika tombol awalnya ditekan.
KeyPress void OnKeyPress

(KeyPressEventArgs)
Dinaikkan setiap kali tombol ditekan. Jika kunci ditahan, KeyPress peristiwa dinaikkan pada tingkat pengulangan yang ditentukan oleh sistem operasi.
KeyUp void OnKeyUp(KeyEventArgs) Dimunculkan saat kunci dirilis.

Catatan

Menangani input keyboard jauh lebih kompleks daripada mengesampingkan peristiwa dalam tabel sebelumnya dan berada di luar cakupan topik ini. Untuk informasi selengkapnya, lihat Input Pengguna di Formulir Windows.

Peristiwa Mouse

Peristiwa mouse yang dapat ditangani kontrol Anda adalah MouseDown, , MouseEnter, MouseHoverMouseLeave, MouseMove, dan MouseUp.

Nama Acara Metode untuk Mengesampingkan Deskripsi Peristiwa
MouseDown void OnMouseDown(MouseEventArgs) Dinaikkan ketika tombol mouse ditekan saat penunjuk berada di atas kontrol.
MouseEnter void OnMouseEnter(EventArgs) Dimunculkan saat penunjuk pertama kali memasuki wilayah kontrol.
MouseHover void OnMouseHover(EventArgs) Dimunculkan saat penunjuk mengarah ke kontrol.
MouseLeave void OnMouseLeave(EventArgs) Dinaikkan saat pointer meninggalkan wilayah kontrol.
MouseMove void OnMouseMove(MouseEventArgs) Dimunculkan saat penunjuk bergerak di wilayah kontrol.
MouseUp void OnMouseUp(MouseEventArgs) Dinaikkan ketika tombol mouse dilepaskan saat penunjuk berada di atas kontrol atau penunjuk meninggalkan wilayah kontrol.

Fragmen kode berikut menunjukkan contoh penimpaan MouseDown peristiwa.

protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub

Fragmen kode berikut menunjukkan contoh penimpaan MouseMove peristiwa.

protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub

Fragmen kode berikut menunjukkan contoh penimpaan MouseUp peristiwa.

protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub

Untuk kode sumber lengkap untuk FlashTrackBar sampel, lihat Cara: Membuat kontrol Formulir Windows yang Memperlihatkan Kemajuan.

Baca juga