Windows Forms'ta Fare Olayları

Fare girişini işlerken, genellikle fare işaretçisinin konumunu ve fare düğmelerinin durumunu bilmek istersiniz. bu konu, fare olaylarından bu bilgilerin nasıl alınacağı hakkında ayrıntılar sağlar ve Windows Forms denetimlerinde fare tıklaması olaylarının nasıl oluşturulduğu sırasını açıklar. tüm fare olaylarının listesi ve açıklaması için bkz. fare girişinin Windows Forms nasıl çalıştığı. ayrıca bkz. olay işleyicilerine genel bakış (Windows Forms) ve olaylara genel bakış (Windows Forms).

Fare bilgileri

Bir MouseEventArgs fare düğmesine tıklanması ve fare hareketlerini izlemek için ilgili fare olaylarının işleyicilerine gönderilir. MouseEventArgs istemci koordinatlarındaki fare işaretçisinin konumu, fare düğmelerine basılan ve Fare tekerleğinin kaydırılışına dahil olmak üzere, farenin geçerli durumu hakkında bilgi sağlar. Yalnızca fare işaretçisi bir denetimin sınırları girildiğinde veya sol tarafta bilgilendirenler gibi birçok fare olayı, EventArgs daha fazla bilgi olmadan olay işleyicisine gönderin.

Fare düğmelerinin geçerli durumunu veya fare işaretçisinin konumunu biliyorsanız ve bir fare olayını işlemeyi önlemek istiyorsanız, MouseButtons sınıfının ve özelliklerini de kullanabilirsiniz MousePosition Control . MouseButtons Şu anda basılan fare düğmelerine ilişkin bilgileri döndürür. , MousePosition Fare işaretçisinin ekran koordinatlarını döndürür ve tarafından döndürülen değere eşdeğerdir Position .

Ekran ve Istemci koordinatları arasında dönüştürme

Bazı fare konum bilgileri istemci koordinatlarındaki ve bazıları ekran koordinatlarından olduğundan, bir noktayı bir koordinat sisteminden diğerine dönüştürmeniz gerekebilir. PointToClient PointToScreen Sınıfı üzerinde kullanılabilen ve yöntemlerini kullanarak bunu kolayca yapabilirsiniz Control .

Standart tıklama olayı davranışı

fare tıklaması olaylarını uygun sırada işlemek istiyorsanız, Windows Forms denetimlerinde tıklama olaylarının nasıl oluşturulduğu sırayı bilmeniz gerekir. tüm Windows Forms denetimleri, bir fare düğmesine basıldığında ve serbest bırakıldığında (hangi fare düğmesinden bağımsız olarak), her bir denetim için aşağıdaki listede belirtilenler dışında, tıklama olaylarını aynı sırada yükseltir. Aşağıdaki listede, tek bir fare düğmesine tıklama için oluşturulan olayların sırası gösterilmektedir:

  1. MouseDown olay.

  2. Click olay.

  3. MouseClick olay.

  4. MouseUp olay.

Bir çift fare düğmesi için oluşturulan olayların sırası aşağıda verilmiştir:

  1. MouseDown olay.

  2. Click olay.

  3. MouseClick olay.

  4. MouseUp olay.

  5. MouseDown olay.

  6. DoubleClick olay. (Bu, söz konusu denetimin StandardDoubleClick Stil biti olarak ayarlanmış olmasına bağlı olarak farklılık gösterebilir true . Bit ayarlama hakkında daha fazla bilgi için ControlStyles SetStyle yöntemine bakın.)

  7. MouseDoubleClick olay.

  8. MouseUp olay.

fare tıklama olaylarının sırasını gösteren bir kod örneği için bkz. nasıl yapılır: Windows Forms denetimlerinde kullanıcı giriş olaylarını işleme.

Bireysel denetimler

Aşağıdaki denetimler standart fare tıklaması olay davranışına uymuyor:

İki durumlu denetimlerin boyama davranışı

Sınıfından türetilen denetimler gibi geçiş denetimleri ButtonBase , fare tıklama olayları ile birlikte aşağıdaki farklı boyama davranışına sahiptir:

  1. Kullanıcı fare düğmesine basar.

  2. Denetim, basılan durumu boyar.

  3. MouseDownOlay tetiklenir.

  4. Kullanıcı fare düğmesini serbest bırakır.

  5. Denetim, oluşturulan durumu boyar.

  6. ClickOlay tetiklenir.

  7. MouseClickOlay tetiklenir.

  8. MouseUpOlay tetiklenir.

    Not

    Fare düğmesi kapalıyken Kullanıcı işaretçiyi iki durumlu denetimin dışına taşımışsa (basıldığında fareyi denetimin dışına taşımak gibi Button ), geçiş denetimi, ortaya çıkan durumu boyar ve yalnızca MouseUp olay meydana gelir. ClickVeya MouseClick olayları bu durumda gerçekleşmeyecektir.

Ayrıca bkz.