Aracılığıyla paylaş


Fare kullanımına genel bakış (Windows Forms .NET)

Fare girişinin alınması ve işlenmesi her Windows uygulamasının önemli bir parçasıdır. Uygulamanızda bir eylem gerçekleştirmek için fare olaylarını işleyebilir veya isabet testi veya diğer eylemleri gerçekleştirmek için fare konumu bilgilerini kullanabilirsiniz. Ayrıca, uygulamanızdaki denetimlerin fare girişini işleme biçimini değiştirebilirsiniz. Bu makalede bu fare olayları ayrıntılı olarak açıklanır ve fare için sistem ayarlarının nasıl alınıp değiştireceği açıklanır.

Windows Forms'da, uygulamalara Windows iletileri biçiminde kullanıcı girişi gönderilir. Geçersiz kılınabilir bir dizi yöntem, bu iletileri uygulama, form ve denetim düzeyinde işler. Bu yöntemler fare iletilerini aldığında, fare girişi hakkında bilgi almak için işlenebilen olaylar oluşturur. Çoğu durumda, Windows Forms uygulamaları bu olayları işleyerek tüm kullanıcı girişlerini işleyebilir. Diğer durumlarda, uygulama belirli bir iletiyi uygulama, form veya denetim tarafından alınmadan önce kesmek için iletileri işleyen yöntemlerden birini geçersiz kılabilir.

Fare Olayları

Tüm Windows Forms denetimleri, fare ve klavye girişiyle ilgili bir dizi olayı devralır. Örneğin, bir denetim fare tıklamasının konumunu belirlemek için olayı işleyebilir MouseClick . Fare olayları hakkında daha fazla bilgi için bkz . Fare olaylarını kullanma.

Fare konumu ve isabet testi

Kullanıcı fareyi hareket ettiğinde, işletim sistemi fare işaretçisini hareket eder. Fare işaretçisi, işletim sisteminin izlediği ve işaretçinin konumu olarak tanıdığı etkin nokta olarak adlandırılan tek bir piksel içerir. Kullanıcı fareyi hareket ettiğinde veya fare düğmesine bastığında Control , öğesini içeren HotSpot uygun fare olayını tetikler.

Bir fare olayını işlerken veya sınıfının özelliğini MouseEventArgs Cursor kullanarak Position geçerli fare konumunu özelliğiyle Location elde edebilirsiniz. Daha sonra fare konumu bilgilerini kullanarak isabet testi gerçekleştirebilir ve ardından farenin konumuna göre bir eylem gerçekleştirebilirsiniz. İsabet testi özelliği, Windows Forms'da , TreeViewMonthCalendar ve DataGridView denetimleri gibi çeşitli denetimlerde yerleşik olarak ListViewbulunur.

Uygun fare olayıyla kullanıldığında, MouseHover örneğin, isabet testi uygulamanızın belirli bir eylemi ne zaman yapması gerektiğini belirlemek için çok yararlıdır.

Fare giriş ayarlarını değiştirme

Denetimden türeterek ve ve SetStyle yöntemlerini kullanarak GetStyle bir denetimin fare girişini işleme biçimini algılayabilir ve değiştirebilirsiniz. yöntemi, SetStyle denetimin ControlStyles standart tıklama, çift tıklama davranışına sahip olup olmayacağını veya denetimin kendi fare işlemesini işleyip işlemeyeceğini belirlemek için değerlerin bit düzeyinde bir bileşimini alır. Ayrıca sınıfı, SystemInformation farenin özelliklerini açıklayan ve farenin işletim sistemiyle nasıl etkileşim kuracağını belirten özellikler içerir. Aşağıdaki tabloda bu özellikler özetlemektedir.

Özellik Açıklama
DoubleClickSize İşletim sisteminin iki tıklamayı çift tıklama olarak düşünebilmesi için kullanıcının iki kez tıklaması gereken alanın boyutlarını piksel cinsinden alır.
DoubleClickTime Fare eyleminin çift tıklama olarak kabul edilmesi için ilk tıklama ile ikinci tıklama arasında geçen milisaniye sayısı üst sınırını alır.
MouseButtons Faredeki düğme sayısını alır.
MouseButtonsSwapped Sol ve sağ fare düğmelerinin işlevlerinin değiştirilip değiştirilmediğini gösteren bir değer alır.
MouseHoverSize Fare işaretçisinin, fare üzerine gelme iletisi oluşturulmadan önce farenin üzerine gelme süresi boyunca kalması gereken dikdörtgenin boyutlarını piksel cinsinden alır.
MouseHoverTime Fare işaretçisinin fare vurgulama iletisi oluşturulmadan önce fare işaretçisinin vurgulama dikdörtgeninde kalması gereken süreyi milisaniye cinsinden alır.
MousePresent Farenin yüklü olup olmadığını gösteren bir değer alır.
MouseSpeed 1 ile 20 arasından 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ı gösteren bir değer alır.
MouseWheelScrollDelta Tek bir fare tekerleği döndürmesinin artışının delta değerinin miktarını alır.
MouseWheelScrollLines Fare tekerleği döndürüldüğünde kaydıracak satır sayısını alır.

Kullanıcı giriş iletilerini işleyen yöntemler

Formlar ve denetimler, arabirime IMessageFilter ve windows iletilerini ileti kuyruğunun farklı noktalarında işleyen geçersiz kılınabilir yöntemler kümesine erişebilir. Bu yöntemlerin tümü, Windows iletilerinin alt düzey ayrıntılarını kapsülleyen bir Message parametreye sahiptir. İletiyi incelemek ve ardından iletiyi kullanmak veya ileti kuyruğundaki bir sonraki tüketiciye geçirmek için bu yöntemleri uygulayabilir veya geçersiz kılabilirsiniz. Aşağıdaki tabloda, Windows Forms'daki tüm Windows iletilerini işleyen yöntemler gösterilir.

Metot Notlar
PreFilterMessage Bu yöntem, uygulama düzeyinde kuyruğa alınan (gönderilen olarak da bilinir) Windows iletilerini durdurur.
PreProcessMessage Bu yöntem, Windows iletilerini işlenmeden önce form ve denetim düzeyinde durdurur.
WndProc Bu yöntem, Windows iletilerini form ve denetim düzeyinde işler.
DefWndProc Bu yöntem, Windows iletilerinin form ve denetim düzeyinde varsayılan işlemesini gerçekleştirir. Bu, bir pencerenin en düşük işlevselliğini sağlar.
OnNotifyMessage Bu yöntem, iletileri işlendikten sonra form ve denetim düzeyinde durdurur. Bu yöntemin EnableNotifyMessage çağrılabilmesi için stil bitinin ayarlanması gerekir.

Ayrıca bkz.