Menggunakan event mouse

Sebagian besar program Windows Forms memproses input mouse dengan menangani peristiwa tetikus. Artikel ini memberikan gambaran umum tentang peristiwa mouse, termasuk detail tentang kapan harus menggunakan setiap peristiwa dan data yang disediakan untuk setiap peristiwa. Untuk informasi selengkapnya tentang peristiwa secara umum, lihat Gambaran umum peristiwa.

Peristiwa mouse

Cara utama untuk merespons masukan tetikus adalah dengan menangani peristiwa tetikus. Tabel berikut ini memperlihatkan peristiwa mouse dan menjelaskan kapan peristiwa tersebut dinaikkan.

Acara Tetikus Deskripsi
Click Kejadian ini terjadi ketika tombol mouse dirilis, biasanya sebelum peristiwa MouseUp. Handler untuk event ini menerima argumen dengan jenis EventArgs. Tangani kejadian ini ketika Anda hanya perlu menentukan kapan klik terjadi.
MouseClick Kejadian ini terjadi ketika pengguna mengklik kontrol dengan mouse. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs. Tangani kejadian ini ketika Anda memerlukan informasi tentang mouse saat terjadi klik.
DoubleClick Kejadian ini terjadi ketika kontrol diklik dua kali. Handler untuk event ini menerima argumen dengan jenis EventArgs. Tangani peristiwa ini ketika Anda hanya perlu menentukan kapan terjadi klik ganda.
MouseDoubleClick Kejadian ini terjadi ketika pengguna mengklik dua kali kontrol dengan mouse. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs. Tangani kejadian ini ketika Anda perlu mendapatkan informasi tentang mouse saat terjadi klik ganda.
MouseDown Kejadian ini terjadi ketika penunjuk mouse berada di atas kontrol dan pengguna menekan tombol mouse. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs.
MouseEnter Peristiwa ini terjadi ketika penunjuk mouse memasuki batas atau area klien kontrol, tergantung pada jenis kontrol. Handler untuk event ini menerima argumen dengan jenis EventArgs.
MouseHover Kejadian ini terjadi ketika penunjuk mouse berhenti dan bersandar di atas kontrol. Handler untuk event ini menerima argumen dengan jenis EventArgs.
MouseLeave Kejadian ini terjadi ketika penunjuk mouse meninggalkan batas atau area klien kontrol, tergantung pada jenis kontrol. Handler untuk event ini menerima argumen dengan jenis EventArgs.
MouseMove Peristiwa ini terjadi ketika pointer mouse bergerak saat berada di atas elemen kontrol. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs.
MouseUp Kejadian ini terjadi ketika penunjuk mouse berada di atas kontrol dan pengguna melepaskan tombol mouse. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs.
MouseWheel Peristiwa ini terjadi ketika pengguna memutar roda mouse saat kontrol dalam keadaan fokus. Handler untuk event ini menerima argumen dengan jenis MouseEventArgs. MouseEventArgs.Delta Gunakan properti untuk menentukan seberapa jauh mouse digulir.

Informasi tetikus

MouseEventArgs dikirim ke pengendali peristiwa mouse yang berhubungan dengan klik tombol mouse dan pelacakan gerakan mouse. MouseEventArgs menyediakan informasi tentang status mouse saat ini, termasuk lokasi penunjuk mouse dalam koordinat klien, tombol mouse mana yang ditekan, dan apakah roda mouse telah digulir. Beberapa peristiwa mouse, seperti yang dipicu ketika penunjuk mouse telah memasuki atau meninggalkan batas kontrol, mengirimkan "EventArgs" ke pengelola acara tanpa informasi lebih lanjut.

Jika Anda ingin mengetahui status tombol mouse saat ini atau lokasi penunjuk mouse, dan Anda ingin menghindari penanganan peristiwa mouse, Anda juga dapat menggunakan properti MouseButtons dan MousePosition kelas Control. MouseButtons mengembalikan informasi tentang tombol mouse mana yang saat ini ditekan. MousePosition mengembalikan koordinat layar penunjuk mouse dan setara dengan nilai yang dikembalikan oleh Position.

Mengonversi Antara Koordinat Layar dan Klien

Karena beberapa informasi lokasi mouse berada dalam koordinat klien dan beberapa berada dalam koordinat layar, Anda mungkin perlu mengonversi titik dari satu sistem koordinat ke sistem koordinat lainnya. Anda dapat melakukan ini dengan mudah dengan menggunakan metode PointToClient dan PointToScreen yang tersedia di kelas Control.

Perilaku peristiwa Klik Standar

Jika Anda ingin menangani peristiwa klik mouse dalam urutan yang tepat, Anda perlu mengetahui urutan peristiwa klik dinaikkan dalam kontrol Formulir Windows. Semua kontrol Windows Forms memicu peristiwa klik dalam urutan yang sama ketika tombol mouse yang sesuai ditekan dan dirilis, kecuali jika dicatat dalam daftar berikut untuk kontrol individual. Daftar berikut menunjukkan urutan peristiwa yang terjadi untuk satu klik tombol mouse:

  1. Peristiwa MouseDown.
  2. Peristiwa Click.
  3. Peristiwa MouseClick.
  4. Peristiwa MouseUp.

Berikut ini adalah urutan peristiwa yang dipicu untuk klik ganda mouse:

  1. Peristiwa MouseDown.

  2. Peristiwa Click.

  3. Peristiwa MouseClick.

  4. Peristiwa MouseUp.

  5. Peristiwa MouseDown.

  6. Peristiwa DoubleClick.

    Ini dapat bervariasi, tergantung pada apakah kontrol yang dimaksud memiliki bit gaya StandardDoubleClick disetel ke true. Untuk informasi selengkapnya tentang cara mengatur bit ControlStyles, lihat metode SetStyle.

  7. Peristiwa MouseDoubleClick.

  8. Peristiwa MouseUp.

Pengaturan individual

Kontrol berikut ini tidak sesuai dengan perilaku peristiwa klik mouse standar:

Perilaku tampilan kontrol pengalih

Kontrol geser, seperti kontrol yang berasal dari kelas ButtonBase, memiliki perilaku menggambar yang khas dalam kombinasi dengan peristiwa klik pada mouse.

  1. Pengguna menekan tombol mouse.

  2. Pengendali menggambar dalam kondisi ditekan.

  3. Peristiwa MouseDown diaktifkan.

  4. Pengguna melepaskan tombol mouse.

  5. Kontrol ditampilkan dalam keadaan naik.

  6. Peristiwa Click diaktifkan.

  7. Peristiwa MouseClick diaktifkan.

  8. Peristiwa MouseUp diaktifkan.

    Nota

    Jika pengguna memindahkan penunjuk keluar dari kontrol toggle saat tombol mouse ditekan (seperti memindahkan mouse dari Button kontrol saat ditekan), kontrol toggle ditampilkan dalam keadaan terangkat dan hanya peristiwa MouseUp yang terjadi. Peristiwa Click atau MouseClick tidak akan terjadi dalam situasi ini.

Lihat juga