Windows Forms'ta Fare Olayları

Fare girişini işlerken, genellikle fare işaretçisinin konumunu ve fare düğmelerinin durumunu bilmek istersiniz. Bu konuda, fare olaylarından bu bilgilerin nasıl alındığı hakkında ayrıntılı bilgiler sağlanır ve Windows Forms denetimlerinde fare tıklama olaylarının tetiklendiği sıra açıklanmaktadır. Tüm fare olaylarının listesi ve açıklaması için bkz . Windows Forms'da Fare Girişi Nasıl Çalışır? Ayrıca bkz . Olay İşleyicilerine Genel Bakış (Windows Forms) ve Olaylara Genel Bakış (Windows Forms).

Fare Bilgileri

bir MouseEventArgs fare düğmesine tıklama ve fare hareketlerini izleme ile ilgili fare olaylarının işleyicilerine gönderilir. MouseEventArgs fare işaretçisinin istemci koordinatlarındaki konumu, hangi fare düğmelerine basıldığı ve fare tekerleğinin kaydırılıp kaydırılmadığı gibi farenin geçerli durumu hakkında bilgi sağlar. Fare işaretçisi bir denetimin sınırlarına girdiğinde veya bıraktığında bildirimde bulunanlar gibi çeşitli fare olayları, başka bilgi olmadan olay işleyicisine bir EventArgs gönderir.

Fare düğmelerinin geçerli durumunu veya fare işaretçisinin konumunu bilmek ve fare olayını işlemekten kaçınmak istiyorsanız, sınıfın MouseButtons ve MousePosition özelliklerini Control de kullanabilirsiniz. MouseButtons , şu anda hangi fare düğmelerine basıldığı hakkında bilgi döndürür. , MousePosition fare işaretçisinin ekran koordinatlarını döndürür ve tarafından Positiondöndürülen değere eşdeğerdir.

Ekran ve İstemci Koordinatları Arasında Dönüştürme

Bazı fare konumu bilgileri istemci koordinatlarında ve bazıları ekran koordinatlarında olduğundan, bir noktayı bir koordinat sisteminden diğerine dönüştürmeniz gerekebilir. Bunu, sınıfında bulunan Control ve PointToScreen yöntemlerini kullanarak PointToClient kolayca yapabilirsiniz.

Standart Tıklama Olayı Davranışı

Fare tıklaması olaylarını doğru sırada işlemek istiyorsanız, Windows Forms denetimlerinde tıklama olaylarının tetiklenme sırasını bilmeniz gerekir. Tüm Windows Forms denetimleri, tek tek denetimler için aşağıdaki listede belirtilen durumlar dışında, fare düğmesine basıldığında ve serbest bırakıldığında (hangi fare düğmesine bakılmaksızın) tıklama olaylarını aynı sırada oluşturur. Aşağıdaki listede, tek bir fare düğmesi tıklaması için tetiklenen olayların sırası gösterilmektedir:

  1. MouseDown Olay.

  2. Click Olay.

  3. MouseClick Olay.

  4. MouseUp Olay.

Çift fare düğmesi tıklaması için tetiklenen olayların sırası aşağıdadır:

  1. MouseDown Olay.

  2. Click Olay.

  3. MouseClick Olay.

  4. MouseUp Olay.

  5. MouseDown Olay.

  6. DoubleClick Olay. (Bu, söz konusu denetimin stil bitinin olarak ayarlanıp ayarlanmadığına StandardDoubleClicktruebağlı olarak değişebilir. Bit ayarlama ControlStyles hakkında daha fazla bilgi için yöntemine SetStyle 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ı İşleme.

Tek Tek Denetimler

Aşağıdaki denetimler, standart fare tıklama olayı davranışına uymaz:

Geçiş denetimlerinin boyama davranışı

Sınıftan türetilen ButtonBase denetimler gibi geçiş denetimleri, fare tıklama olaylarıyla birlikte aşağıdaki ayırt edici boyama davranışına sahiptir:

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

  2. Denetim, basılı durumda boyanıyor.

  3. Olay MouseDown oluşturulur.

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

  5. Denetim yükseltilmiş durumda boyar.

  6. Olay Click oluşturulur.

  7. Olay MouseClick oluşturulur.

  8. Olay MouseUp oluşturulur.

    Dekont

    Kullanıcı fare düğmesi kapalıyken işaretçiyi iki durumlu denetimin dışına taşırsa (fareyi basılıyken denetimin Button dışına taşımak gibi), iki durumlu düğme denetimi yükseltilmiş durumda boyanır MouseUp ve yalnızca olay gerçekleşir. Click veya MouseClick olayları bu durumda gerçekleşmez.

Ayrıca bkz.