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.
.NET Desktop feedback