Új vezérlők létrehozása – áttekintés

A Windows Forms használatával létrehozhat új vezérlőket, vagy örökléssel módosíthatja a meglévő vezérlőket. Ez a cikk kiemeli az új vezérlők létrehozásának módjai közötti különbségeket, és tájékoztatást nyújt arról, hogyan választhat ki egy adott típusú vezérlőt a projekthez.

Alapvezérlő osztály

Az Control osztály a Windows Forms-vezérlők alaposztálya. A Windows Forms-alkalmazások vizualizációs megjelenítéséhez szükséges infrastruktúrát biztosítja, és a következő képességeket biztosítja:

  • Elérhetővé tesz egy ablakfogópontot.
  • Kezeli az üzenet-irányítást.
  • Egér- és billentyűzeteseményeket, valamint sok más felhasználói felületi eseményt biztosít.
  • Speciális elrendezési funkciókat biztosít.
  • Számos, a vizualizációra jellemző tulajdonságot tartalmaz, például ForeColor: , BackColorHeight, és Width.

Mivel az infrastruktúra nagy részét az alaposztály biztosítja, viszonylag könnyen fejleszthet saját Windows Forms-vezérlőket.

Saját vezérlő létrehozása

Háromféle egyéni vezérlőt hozhat létre: felhasználói vezérlőket, kiterjesztett vezérlőket és egyéni vezérlőket. Az alábbi táblázat segít eldönteni, hogy milyen típusú vezérlőelemet kell létrehoznia:

Ha... Hozzon létre egy ...
  • Több Windows Forms-vezérlő funkcióját egyetlen újrafelhasználható egységbe szeretné egyesíteni.
Felhasználói vezérlő tervezése a System.Windows.Forms.UserControl parancsból való örökléssel.
  • A szükséges funkciók többsége már megegyezik a meglévő Windows Forms-vezérlőkével.
  • Nincs szükség egyéni grafikus felhasználói felületre, vagy új grafikus felhasználói felületet szeretne tervezni egy meglévő vezérlőhöz.
Egy vezérlőelem kiterjesztése egy adott Windows Forms-vezérlőtől való örökléssel.
  • A vezérlő személyre szabott grafikus megjelenítését szeretné adni.
  • Olyan egyéni funkciókat kell implementálnia, amelyek nem érhetők el standard vezérlőkkel.
Hozzon létre egy egyéni vezérlőt a System.Windows.Forms.Control öröklésével.

Felhasználói vezérlők

A felhasználói vezérlők olyan Windows Forms-vezérlők gyűjteményei, amelyek egyetlen vezérlőként jelennek meg a fogyasztó számára. Ezt a vezérlőtípust összetett vezérlőnek nevezik. A tartalmazott vezérlőket összetevő vezérlőkneknevezik.

A felhasználói vezérlők az egyes windowsos űrlapok vezérlőihez társított összes belső funkciót tartalmazzák, és lehetővé teszik a tulajdonságok szelektív nyilvánosságra hozását és kötését. A felhasználói vezérlők emellett számos alapértelmezett billentyűzetkezelési funkciót is biztosítanak, és nem igényelnek további fejlesztési erőfeszítéseket.

Létrehozhat például egy felhasználói vezérlőt, amely egy adatbázis ügyfélcímadatait jeleníti meg. Ez a vezérlő tartalmazna egy vezérlőt DataGridView az adatbázismezők megjelenítéséhez, egy BindingSource adatforráshoz való kötés kezeléséhez, valamint egy vezérlőt BindingNavigator a rekordokon való áthaladáshoz. Szelektíven elérhetővé teheti az adatkötési tulajdonságokat, és alkalmazásról alkalmazásra csomagolhatja és újra felhasználhatja a teljes vezérlőt. Az ilyen típusú felhasználói vezérlőkre példa : Útmutató: Attribútumok alkalmazása a Windows Űrlapvezérlőkben.

További információ: Felhasználóvezérlés áttekintése.

Kiterjesztett vezérlők

Örökölt vezérlőt bármely meglévő Windows Forms-vezérlőből származtathat. Ezzel a módszerrel megtarthatja a Windows Forms-vezérlők összes veleszületett funkcióját, majd kiterjesztheti ezt a funkciót egyéni tulajdonságok, metódusok vagy egyéb funkciók hozzáadásával. Ezzel a beállítással felülbírálhatja az alapvezérlő festéklogikát, majd a megjelenés módosításával kibővítheti a felhasználói felületét.

Létrehozhat például egy vezérlőből származtatott vezérlőt Button , amely nyomon követi, hogy egy felhasználó hányszor kattintott rá.

Egyes vezérlőkben egyéni megjelenést is hozzáadhat a vezérlő grafikus felhasználói felületéhez az alaposztály metódusának felülírásával OnPaint . A kiterjesztett gomb, amely a kattintásokat nyomon követi, esetén felülbírájáhatja a OnPaint metódust, hogy meghívja a OnPaint alapértelmezett megvalósítását, majd megrajzolhatja a kattintások számát a Button vezérlő kliens területének egyik sarkában.

Egy vezérlő kiterjesztésére példa: Meglévő vezérlőelem kiterjesztése.

Egyéni vezérlők

A vezérlők létrehozásának másik módja az, hogy lényegesen a kezdetektől kezdve hozzunk létre egyet úgy, hogy öröklődjünk a Control-tól. Az Control osztály a vezérlők által igényelt összes alapvető funkciót biztosítja, beleértve az egér- és billentyűzetkezelési eseményeket is, de nincs vezérlőspecifikus funkció vagy grafikus felület.

Vezérlő létrehozása a Control osztályból való örökléssel több gondolkodást és erőfeszítést igényel, mint a UserControl osztály vagy egy meglévő Windows Forms-vezérlő öröklésével. Mivel sok megvalósítást maga végezhet el, a vezérlő nagyobb rugalmasságot biztosít, mint egy összetett vagy kiterjesztett vezérlő, és a vezérlőt pontosan az igényeihez igazíthatja.

Egyéni vezérlők implementálásához meg kell írnia a OnPaint vezérlő metódusának kódját, amely szabályozza a vezérlő vizuális rajzolását. A vezérlőhöz minden funkcióspecifikus viselkedést is meg kell írnia. Felül is bírálhatja a WndProc metódust, és közvetlenül kezelheti a Windows-üzeneteket. Ez a leghatékonyabb módszer a vezérlők létrehozására, de a technika hatékony használatához ismernie kell a Microsoft Win32 API-t.

Az egyéni vezérlőkre példa egy óravezérlő, amely duplikálja az analóg óra megjelenését és viselkedését. Az egyéni festést azért váltják ki, hogy az óra mutatói egy belső Tick összetevő eseményeire reagálva mozogjanakTimer.

További információ: Egyszerű egyéni vezérlő létrehozása.

ActiveX-vezérlők

Bár a Windows Forms-infrastruktúra windowsos űrlapvezérlők üzemeltetésére lett optimalizálva, továbbra is használhatja az ActiveX-vezérlőket. A Visual Studio támogatja ezt a feladatot. További információkért lásd: Hogyan adhatók hozzá ActiveX-vezérlők a Windows Formshoz?

Figyelmeztetés

Az ActiveX-vezérlők nem támogatottak teljes mértékben a .NET-en. Az ActiveX-vezérlők továbbra is teljes mértékben támogatottak a .NET-keretrendszerben.

Egyéni tervezési felület

Ha egyéni fejlesztési környezetet kell kialakítania, létrehozhatja saját tervezőjét. Összetett vezérlők esetén az egyéni tervezőosztályát az ParentControlDesigner vagy DocumentDesigner osztályokból származtassa. Kiterjesztett és egyéni vezérlők esetén az egyéni tervezőosztályt az ControlDesigner osztályból származtathatja.

Használja a DesignerAttribute-t, hogy a vezérlőt a tervezőhöz társítsa.

Az alábbi információk elavultak, de segíthetnek.