Windows Forms'ta Fare Girdisi Nasıl Çalışır

Fare girişini alma ve işleme, her uygulamanın önemli bir Windows parçasıdır. Uygulamanıza eylem gerçekleştirmek için fare olaylarını işebilir veya isabet testi ya da başka eylemler gerçekleştirmek için fare konumu bilgilerini kullanabilirsiniz. Ayrıca, uygulamanıza gelen denetimlerin fare girişini işleme yolunu değiştirebilirsiniz. Bu konu başlığında, bu fare olaylarını ayrıntılı olarak ve fare için sistem ayarlarının nasıl alınarak değiştirilebilecekleri açıklanmaktadır. Fare olaylarıyla sağlanan veriler ve fare tıklama olaylarının sırası hakkında daha fazla bilgi için bkz. Windows Forms'da Fare Olayları.

Fare Konumu ve Hit-Testing

Kullanıcı fareyi hareket ettir ettiğinde işletim sistemi fare işaretçisini taşır. Fare işaretçisi, işletim sisteminin işaretçinin konumu olarak takip ve tanıması için hot spot olarak adlandırılan tek bir piksel içerir. Kullanıcı fareyi hareket ettir ettiğinde veya bir fare düğmesine basıldığında, içeren uygun Control HotSpot fare olayına neden olur. Fare olayı işleme sırasında veya sınıfının özelliğini kullanarak geçerli fare konumunu Location MouseEventArgs Position özelliğiyle elde Cursor edinebilirsiniz. Daha sonra fare konumu bilgilerini kullanarak isabet testi gerçekleştirebilirsiniz ve ardından farenin konumunu temel alan bir eylem gerçekleştirebilirsiniz. Isabet testi özelliği, , ve denetimleri gibi Windows Formlar'daki çeşitli ListView TreeView denetimlerde MonthCalendar DataGridView yerleşiktir. Örneğin uygun fare olayıyla birlikte kullanılan isabet testi, uygulamanın belirli bir eylemi ne zaman MouseHover gerçekleştireceklerini belirlemek için çok yararlıdır.

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, fare düğmesi genellikle olaydan önce serbest bırakıldığında MouseUp oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken EventArgs alır. Bu olayı yalnızca bir tıklamanın ne zaman oluştuğuna karar verdiyken işle.
MouseClick Kullanıcı fareyle denetime tıkladığında bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır. Bir tıklama oluştuğunda fare hakkında bilgi almak istediğinizde bu olayı işebilirsiniz.
DoubleClick Denetime çift tık olduğunda bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken EventArgs alır. Bu olayı yalnızca bir çift tıklamanın ne zaman oluştuğuna karar verdiyken işle.
MouseDoubleClick Kullanıcı fareyle denetime çift tıkladığında bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır. Çift tıklama oluştuğunda fare hakkında bilgi almak için bu olayı işebilirsiniz.
MouseDown Fare işaretçisi denetimin üzerine geldiğinde ve kullanıcı bir fare düğmesine basıldığında bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır.
MouseEnter Bu olay, fare işaretçisi denetim türüne bağlı olarak denetimin kenarlığı veya istemci alanına girdiği zaman oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken EventArgs alır.
MouseHover Fare işaretçisi durduğunda ve denetimin üzerinde durduğunda bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken EventArgs alır.
MouseLeave Fare işaretçisi denetimin kenarlığı veya istemci alanından ayrıldığında, denetimin türüne bağlı olarak bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken EventArgs alır.
MouseMove Bu olay, fare işaretçisi bir denetimin üzerindeyken hareket ettiğinde oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır.
MouseUp Fare işaretçisi denetimin üzerine geldiğinde ve kullanıcı bir fare düğmesini serbest bıraktığınızda bu olay oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır.
MouseWheel Bu olay, denetim odağındayken kullanıcı fare tekerleğini döndürünca oluşur. Bu olayın işleyicisi türünde bir bağımsız değişken MouseEventArgs alır. Farenin ne Delta kadar MouseEventArgs kaydırmış olduğunu belirlemek için özelliğini kullanabilirsiniz.

Fare Girişini Değiştirme ve Sistem Ayarlarını Ayarlar

Denetimden türeterek ve yöntemlerini kullanarak denetimin fare girişini işleme yöntemini algılanabilir ve GetStyle SetStyle değiştirebilirsiniz. yöntemi, denetimin standart tıklama veya çift tıklama davranışına sahip olup olmadığını veya denetimin kendi fare işlemesini işip işlemeyeceklerini belirlemek için değerlerin bit olarak bir SetStyle ControlStyles bileşimini alır. Buna ek olarak, sınıfı farenin özelliklerini açıklayan özellikler içerir ve SystemInformation farenin işletim sistemiyle nasıl etkileşim kurasını belirtir. Aşağıdaki tabloda bu özellikler özetlenmiştir.

Özellik Açıklama
DoubleClickSize kullanıcının işletim sisteminin iki tıklamayı iki kez tıklamayı göz önünde bulundurarak iki kez tıklaması gereken alanı piksel cinsinden alır.
DoubleClickTime fare eylemlerini çift tıklama olarak kabul etmek için işletim sisteminin ilk tıklama ile ikinci tıklama arasında geçebilirsiniz maksimum milisaniye sayısını alır.
MouseButtons Fare üzerindeki düğmelerin sayısını alır.
MouseButtonsSwapped Sol ve sağ fare düğmelerinin işlevlerinin değiştir olup olmadığını belirten bir değer alır.
MouseHoverSize Fare imlecinin üzerine gelme iletisi oluşturulmadan önce fare işaretçisinin farenin üzerine gelme süresi boyunca kalması gereken dikdörtgenin boyutlarını piksel cinsinden alır.
MouseHoverTime Fare imlecinin üzerine gelme iletisi oluşturulmadan önce fare işaretçisinin üzerine gelme dikdörtgende kalması gereken zamanı milisaniye cinsinden alır.
MousePresent Farenin yüklü olup olmadığını belirten bir değer alır.
MouseSpeed 1 ile 20 arasında geçerli fare hızını gösteren bir değer alır.
MouseWheelPresent Fare tekerleği olan bir farenin yüklü olup olmadığını belirten bir değer alır.
MouseWheelScrollDelta Tek bir fare tekerleği döndürme artışının delta değerinin miktarını alır.
MouseWheelScrollLines Fare tekerleği döndürülünken kaydırmak için satır sayısını alır.

Ayrıca bkz.