Bagikan melalui


Peristiwa Mouse di Formulir Windows

Ketika Anda menangani input mouse, Anda biasanya ingin mengetahui lokasi penunjuk mouse dan status tombol mouse. Topik ini menyediakan detail tentang cara mendapatkan informasi ini dari peristiwa mouse, dan menjelaskan urutan peristiwa klik mouse dinaikkan dalam kontrol Formulir Windows. Untuk daftar dan deskripsi semua peristiwa mouse, lihat Cara Kerja Input Mouse di Formulir Windows. Lihat Juga Gambaran Umum Penanganan Aktivitas (Formulir Windows) dan Gambaran Umum Peristiwa (Formulir Windows).

Informasi Mouse

MouseEventArgs dikirim ke penangan peristiwa mouse yang terkait dengan mengklik tombol mouse dan melacak 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 hanya memberi tahu ketika penunjuk mouse telah memasuki atau meninggalkan batas kontrol, mengirim EventArgs ke penanganan aktivitas 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 MouseButtons properti dan MousePosition kelas Control . MouseButtons mengembalikan informasi tentang tombol mouse mana yang saat ini ditekan. mengembalikan MousePosition 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 PointToClient metode dan PointToScreen yang tersedia di Control kelas .

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 Formulir Windows menaikkan peristiwa klik dalam urutan yang sama ketika tombol mouse ditekan dan dilepaskan (terlepas dari tombol mouse mana), kecuali jika dicatat dalam daftar berikut untuk kontrol individual. Daftar berikut menunjukkan urutan peristiwa yang dinaikkan untuk satu klik tombol mouse:

  1. MouseDown Acara.

  2. Click Acara.

  3. MouseClick Acara.

  4. MouseUp Acara.

Berikut ini adalah urutan peristiwa yang dinaikkan untuk klik tombol mouse ganda:

  1. MouseDown Acara.

  2. Click Acara.

  3. MouseClick Acara.

  4. MouseUp Acara.

  5. MouseDown Acara.

  6. DoubleClick Acara. (Ini dapat bervariasi, tergantung pada apakah kontrol yang dimaksud memiliki bit gaya yang StandardDoubleClick diatur ke true. Untuk informasi selengkapnya tentang cara mengatur sedikit ControlStyles , lihat SetStyle metode .)

  7. MouseDoubleClick Acara.

  8. MouseUp Acara.

Untuk contoh kode yang menunjukkan urutan peristiwa klik mouse, lihat Cara: Menangani Peristiwa Input Pengguna di Kontrol Formulir Windows.

Kontrol Individu

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

Perilaku melukis kontrol pengalih

Alihkan kontrol, seperti kontrol yang berasal dari ButtonBase kelas , memiliki perilaku lukisan khas berikut dalam kombinasi dengan peristiwa klik mouse:

  1. Pengguna menekan tombol mouse.

  2. Kontrol melukis dalam keadaan tertekan.

  3. Acara MouseDown dinaikkan.

  4. Pengguna merilis tombol mouse.

  5. Kontrol melukis dalam keadaan terangkat.

  6. Acara Click dinaikkan.

  7. Acara MouseClick dinaikkan.

  8. Acara MouseUp dinaikkan.

    Catatan

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

Baca juga