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 On
delegasi 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 On
metode 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
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk