Fare olaylarını kullanma (Windows Forms .NET)
Çoğu Windows Forms programı, fare olaylarını işleyerek fare girişini işler. Bu makalede, her olayın ne zaman kullanılacağına ve her olay için sağlanan verilere ilişkin ayrıntılar da dahil olmak üzere fare olaylarına genel bir bakış sağlanır. Genel olarak olaylar hakkında daha fazla bilgi için bkz . Olaylara genel bakış (Windows Forms .NET).
Fare olayları
Fare girişine yanıt vermenin birincil yolu, fare olaylarını işlemektir. Aşağıdaki tablo fare olaylarını gösterir ve ne zaman yükseltildiklerini açıklar.
Fare Olayı | Açıklama |
---|---|
Click | Bu olay, genellikle olaydan önce MouseUp fare düğmesi serbest bırakıldığında gerçekleşir. Bu olayın işleyicisi türünde EventArgsbir bağımsız değişken alır. Yalnızca bir tıklamanın ne zaman gerçekleşeceğini belirlemeniz gerektiğinde bu olayı işleyin. |
MouseClick | Bu olay, kullanıcı fareyle denetime tıkladığında oluşur. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. Bir tıklama gerçekleştiğinde fare hakkında bilgi almanız gerektiğinde bu olayı işleyin. |
DoubleClick | Bu olay, denetime çift tıklandığında gerçekleşir. Bu olayın işleyicisi türünde EventArgsbir bağımsız değişken alır. Yalnızca çift tıklamanın ne zaman gerçekleşeceğini belirlemeniz gerektiğinde bu olayı işleyin. |
MouseDoubleClick | Bu olay, kullanıcı fareyle denetime çift tıkladığında oluşur. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. Çift tıklama gerçekleştiğinde fare hakkında bilgi almanız gerektiğinde bu olayı işleyin. |
MouseDown | Bu olay, fare işaretçisi denetimin üzerinde olduğunda ve kullanıcı fare düğmesine bastığında gerçekleşir. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. |
MouseEnter | Bu olay, denetimin türüne bağlı olarak fare işaretçisi denetimin kenarlık veya istemci alanına girdiğinde oluşur. Bu olayın işleyicisi türünde EventArgsbir bağımsız değişken alır. |
MouseHover | Bu olay, fare işaretçisi durdurulduğunda ve denetimin üzerinde durduğunda gerçekleşir. Bu olayın işleyicisi türünde EventArgsbir bağımsız değişken alır. |
MouseLeave | Bu olay, fare işaretçisi denetimin türüne bağlı olarak denetimin kenarlık veya istemci alanından ayrıldığında oluşur. Bu olayın işleyicisi türünde EventArgsbir bağımsız değişken alır. |
MouseMove | Bu olay, fare işaretçisi bir denetimin üzerindeyken hareket ettiğinde gerçekleşir. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. |
MouseUp | Bu olay, fare işaretçisi denetimin üzerinde olduğunda ve kullanıcı fare düğmesini serbest bıraktığında gerçekleşir. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. |
MouseWheel | Bu olay, kullanıcı fare tekerleğini döndürürken denetim odaktayken gerçekleşir. Bu olayın işleyicisi türünde MouseEventArgsbir bağımsız değişken alır. farenin Delta ne kadar kaydırıldığını belirlemek için özelliğini MouseEventArgs kullanabilirsiniz. |
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 tetiklenenler 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, desteklenen herhangi bir fare düğmesine basıldığında ve serbest bırakıldığında 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.
Tek tek denetimler
Aşağıdaki denetimler, standart fare tıklama olayı davranışına uymaz:
-
Not
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
Not
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
Not
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
Not
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.
Not
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