Az egér használatának áttekintése

Az egérbemenet fogadása és kezelése minden Windows-alkalmazás fontos része. Kezelheti az egéreseményeket, hogy végrehajtson egy műveletet az alkalmazásban, vagy az egér helyadatait használva végezzen találattesztelést vagy egyéb műveleteket. Azt is módosíthatja, hogy az alkalmazás vezérlői hogyan kezelik az egér bemenetét. Ez a cikk részletesen ismerteti ezeket az egéreseményeket, valamint az egér rendszerbeállításainak beszerzését és módosítását.

A Windows Formsban a rendszer felhasználói bemenetet küld az alkalmazásoknak Windows-üzenetekformájában. Ezeket az üzeneteket számos felülírható metódus dolgozza fel az alkalmazás, az űrlap és a vezérlés szintjén. Amikor ezek a metódusok egérüzeneteket kapnak, eseményeket emelnek ki, amelyek kezelhetők az egér bemenetével kapcsolatos információk lekéréséhez. A Windows Forms-alkalmazások sok esetben egyszerűen feldolgozhatják az összes felhasználói bemenetet az események kezelésével. Más esetekben egy alkalmazás felülbírálhatja az üzeneteket feldolgozó egyik metódust, hogy elkapjanak egy adott üzenetet, mielőtt azt az alkalmazás, űrlap vagy vezérlőelem megkapná.

Egér Események

Minden Windows Forms-vezérlő örökli az egér- és billentyűzetbemenethez kapcsolódó eseményeket. Egy vezérlő például képes kezelni a MouseClick eseményt az egérkattintás helyének meghatározásához. További információért az egéreseményekről lásd: Egéresemények használata.

Egér pozíciója és ütközési tesztelés

Amikor a felhasználó áthelyezi az egeret, az operációs rendszer áthelyezi az egérmutatót. Az egérmutató egyetlen képpontot, úgynevezett gyakori elérésű pontot tartalmaz, amelyet az operációs rendszer nyomon követ, és felismeri a mutató pozícióját. Amikor a felhasználó áthelyezi az egeret, vagy lenyom egy egérgombot, a Control tartalmazó HotSpot elindítja a megfelelő egéreseményt.

Az egér aktuális pozícióját a LocationMouseEventArgs tulajdonságával szerezheti be egéresemények kezelésekor vagy az Position osztály Cursor tulajdonságával. Ezután az egér helyadataival elvégezheti a találattesztelést, majd végrehajthat egy műveletet az egér helye alapján. A találattesztelési képesség a Windows Forms számos vezérlőjében, például a ListView, TreeView, MonthCalendarés DataGridView vezérlőkben is be van építve.

A találattesztelés hasznos annak meghatározásához, hogy az alkalmazás mikor hajt végre egy adott műveletet, amikor a megfelelő egéreseményt használja, például MouseHover.

Az egér beviteli beállításainak módosítása

Az egérbemenet kezelésének észlelését és megváltoztatását megteheti a vezérlőből való származtatással, valamint a GetStyle és SetStyle metódusok használatával. A SetStyle metódus az értékek bitenkénti kombinációját ControlStyles használja annak meghatározásához, hogy a vezérlő normál kattintással, dupla kattintással működik-e, vagy hogy a vezérlő kezeli-e a saját egérfeldolgozását. A SystemInformation osztály olyan tulajdonságokat is tartalmaz, amelyek az egér képességeit írják le, és meghatározzák, hogy az egér hogyan kommunikál az operációs rendszerrel. Az alábbi táblázat összefoglalja ezeket a tulajdonságokat.

Ingatlan Leírás
DoubleClickSize Képpontokban lekéri annak a területnek a méretét, ahol a felhasználónak kétszer kell kattintania ahhoz, hogy az operációs rendszer dupla kattintásnak vegye a két kattintást.
DoubleClickTime Az a maximális számú ezredmásodperc, amely az első és a második kattintás között eltelhet ahhoz, hogy az egérművelet dupla kattintásnak minősüljön.
MouseButtons Lekérdezi az egér gombjainak számát.
MouseButtonsSwapped Egy értéket kap, amely jelzi, hogy a bal és a jobb egérgombok funkciói felcserélve lettek-e.
MouseHoverSize Lekéri annak a téglalapnak a méreteit képpontban, amelyen belül az egérmutatónak az egér rámutatási ideje alatt kell maradnia az egérmutató üzenetének létrehozása előtt.
MouseHoverTime Ezredmásodpercben lekéri azt az időt, amikor az egérmutatónak a rámutatási téglalapban kell maradnia az egérmutató üzenetének létrehozása előtt.
MousePresent Beolvas egy értéket, amely jelzi, hogy az egér telepítve van-e.
MouseSpeed Az egér aktuális sebességét jelző értéket kap 1-től 20-ra.
MouseWheelPresent Értéket kap, amely jelzi, hogy telepítve van-e az egérkerékkel rendelkező egér.
MouseWheelScrollDelta Lekéri az egérkerék egy fordulatának növekmény deltaértékét.
MouseWheelScrollLines Lekéri az egérkerék elforgatásakor görgetni kívánt vonalak számát.

A felhasználói beviteli üzeneteket feldolgozó módszerek

Az űrlapok és vezérlők hozzáféréssel rendelkeznek a IMessageFilter felülethez, valamint felülírható metódusok készletéhez, amelyek az üzenetsor különböző pontjain dolgozzák fel a Windows-üzeneteket. Ezek a metódusok mindegyike rendelkezik egy Message paraméterrel, amely a Windows-üzenetek alacsony szintű részleteit foglalja magában. Ezeket a metódusokat implementálhatja vagy felülbírálhatja az üzenet megvizsgálásához, majd felhasználhatja az üzenetet, vagy továbbíthatja azt az üzenetsor következő fogyasztójának. Az alábbi táblázat a Windows Forms összes Windows-üzenetét feldolgozó metódusokat mutatja be.

Metódus Jegyzetek
PreFilterMessage Ez a módszer alkalmazásszinten elfogja az üzenetsorba helyezett (más néven közzétett) Windows-üzeneteket.
PreProcessMessage Ez a módszer az űrlap és a vezérlés szintjén elfogja a Windows-üzeneteket a feldolgozásuk előtt.
WndProc Ez a módszer űrlap- és vezérlési szinten dolgozza fel a Windows-üzeneteket.
DefWndProc Ez a módszer a Windows-üzenetek alapértelmezett feldolgozását végzi el űrlap- és vezérlési szinten. Ez biztosítja az ablak minimális funkcióit.
OnNotifyMessage Ez a metódus a feldolgozásuk után az űrlap és a vezérlés szintjén elfogja az üzeneteket. A metódus meghívásához be kell állítani a EnableNotifyMessage stílusbitet.

Lásd még