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:
MouseDown Olay.
Click Olay.
MouseClick Olay.
MouseUp Olay.
Çift fare düğmesi tıklaması için tetiklenen olayların sırası aşağıdadır:
MouseDown Olay.
Click Olay.
MouseClick Olay.
MouseUp Olay.
MouseDown Olay.
DoubleClick Olay. (Bu, söz konusu denetimin stil bitinin olarak ayarlanıp ayarlanmadığına StandardDoubleClick
true
bağlı olarak değişebilir. Bit ayarlama ControlStyles hakkında daha fazla bilgi için yöntemine SetStyle bakın.)MouseDoubleClick Olay.
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:
-
Dekont
Denetim için ComboBox , daha sonra kullanıcı düzenleme alanına, düğmeye veya listedeki bir öğeye tıklarsa ayrıntılı olay davranışı gerçekleşir.
Sol tıklama: Click, MouseClick
Sağ tıklama: Hiçbir tıklama olayı tetiklenmiş değil
Sol çift tıklayın: Click, MouseClick; Click, MouseClick
Sağ çift tıklama: Hiçbir tıklama olayı tetiklenmiş değil
TextBox, RichTextBox, ListBox, MaskedTextBoxve CheckedListBox denetimleri
Dekont
Ayrıntılı olay davranışı daha sonra kullanıcı bu denetimlerin içinde herhangi bir yere tıkladığında gerçekleşir.
Sol tıklama: Click, MouseClick
Sağ tıklama: Hiçbir tıklama olayı tetiklenmiş değil
Sol çift tıklama: Click, MouseClick, DoubleClick, MouseDoubleClick
Sağ çift tıklama: Hiçbir tıklama olayı tetiklenmiş değil
ListView denetimi
Dekont
Daha sonra ayrıntılandırılan olay davranışı yalnızca kullanıcı denetimdeki öğelere ListView tıkladığında gerçekleşir. Denetimde başka herhangi bir yere tıklama için hiçbir olay tetikilmez. Daha sonra açıklanan olaylara ek olarak, denetimle ListView doğrulamayı kullanmak istiyorsanız ilginizi çekebilecek ve AfterLabelEdit olayları da vardırBeforeLabelEdit.
Sol tıklama: Click, MouseClick
Sağ tıklayın: Click, MouseClick
Sol çift tıklayın: Click, MouseClick; DoubleClick, MouseDoubleClick
Sağ çift tıklayın: Click, MouseClick; DoubleClick, MouseDoubleClick
TreeView denetimi
Dekont
Daha sonra ayrıntılandırılan olay davranışı, yalnızca kullanıcı öğelerin kendisinde veya denetimdeki TreeView öğelerin sağında tıkladığında gerçekleşir. Denetimde başka herhangi bir yere tıklama için hiçbir olay tetikilmez. Daha sonra açıklananlara ek olarak, denetimle TreeView doğrulamayı kullanmak istiyorsanız ilginizi çekebilecek , AfterSelectBeforeLabelEditBeforeSelect, , AfterCheckve AfterLabelEdit olayları vardırBeforeCheck.
Sol tıklama: Click, MouseClick
Sağ tıklayın: Click, MouseClick
Sol çift tıklayın: Click, MouseClick; DoubleClick, MouseDoubleClick
Sağ çift tıklayın: Click, MouseClick; DoubleClick, MouseDoubleClick
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:
Kullanıcı fare düğmesine basar.
Denetim, basılı durumda boyanıyor.
Olay MouseDown oluşturulur.
Kullanıcı fare düğmesini serbest bırakır.
Denetim yükseltilmiş durumda boyar.
Olay Click oluşturulur.
Olay MouseClick oluşturulur.
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.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin