HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Komponens, kontrol fejlesztés első lépései


Példaprogram letöltése

11486 bájt

Mellékelt példából megismerhetjük a komponens, kontrol fejlesztés első, kezdeti lépéseit, melyben lépésről-lépésre bemutatjuk, hogy miként hozhatunk létre új komponenseket, amelyek megjelennek a Toolbox-ban és ezek után már pont úgy felhasználhatjuk őket bármely alkalmazásunkban, mintha azok mindig is részei lettek volna a Visual Studio.NET-nek.

Mellékelt példában készítünk egy kontrolt, melynek két új property-je lesz Color típussal. A kontrol hátterén egy lineáris színátmenet lesz látható a megadott két szín között. Ez a kontrol a WindowsControl1 alkönyvtárban található. Nézzük, hogyan is jött létre ez.
A kontrol készítéséhez válasszuk a File – New – Project menüpontot. Majd a Visual Basic Projects-ből a Windows Control Library-t. Ekkor létrejön az új project és kapunk alapértelmezésben egy UserControl1.vb forráskódot is.
Most már csak annyi a teendőnk, hogy létrehozzuk az új property-ket és megvalósítsuk a színátmenet kirajzolását. Új property-t a következő deklarációval hozhatunk létre:
Először szögletes zárójelek között megadjuk, hogy mely kategórián belül jelenjen meg property-nk a Properties ablakban. Itt használhatunk már meglévő kategóriát, de egy általunk választott új kategóriát is létrehozhatunk. Megadhatjuk továbbá az adott property szöveges tájékoztató leírását is.
<Category("Gradient"), Description("Start Color")> _
Ezek után adjuk meg magát a property-t. Jelen esetben ez Color típusú és Gradient1 névre hallgat. A property értékének tárolásáról és kiolvashatóságáról is gondoskodnunk kell. Ehhez használhatjuk a set és get kulcsszót. A set-hez beírt kód akkor fut le, ha a property új értéket kap. Ekkor ezt eltároljuk az általunk létrehozott gradColor1 változóba, majd az Invalidate függvény hívásával érvénytelenítjük komponensünk területét, mely ennek hatására kénytelen lesz újrarajzolni területét, így elvégezhetjük majd mi is a színátmenetünk frissítését. A get-nél pedig egyszerűen annyi a dolgunk, hogy visszaadjuk a változónkban tárolt színt.
Public Property Gradient1() As System.Drawing.Color
  Get
    Return Me.gradColor1
  End Get
  Set(ByVal Value As System.Drawing.Color)
    Me.gradColor1 = Value
    Invalidate()
  End Set
End Property
Ezzel a módszerrel létrehozzuk a Gradient2 nevű property-t is.
A színátmenet kirajzolásához a Paint eseményt használjuk fel. Ebben az esetben kell megjelenítenünk a színátmenetet. Ehhez szükségünk lesz egy LinearGradientBrush típusú ecsetre, mellyel a két változóban eltárolt szín alapján elkészíthetjük a szükséges színátmenetet, melyet már csak ki kell rajzolnunk a kontrolunk teljes területére. A FillRectangle függvény felhasználásával ezt el is végezzük. Itt első paraméterként az ecsetet, másodikként a kontrolunk méretét Rect típusban kell megadnunk.
Private Sub UserControl1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  Dim brush As LinearGradientBrush = New LinearGradientBrush(Me.ClientRectangle, gradColor1, gradColor2, LinearGradientMode.Vertical)
  e.Graphics.FillRectangle(brush, Me.ClientRectangle)
End Sub
Ezzel tulajdonképpen készen is lennénk, viszont van még egy teendőnk: amikor változtatjuk a kontrol méretét, akkor ez nem jár azzal, hogy a teljes felülete újra lesz rajzolva. Ha ezzel nem törődnénk, akkor az eredmény igen kiábrándító, bár igen érdekes hatású is lenne. Figyelnünk kell tehát, hogy mikor változik a kontrol mérete és ekkor rendelkeznünk kell arról, hogy annak teljes területe kerüljön újrarajzolásra. Ehhez a Resize eseményt használjuk fel. Itt nincs más teendőnk, mint a már használt Invalidate függvényt ismét meghívnunk.
Private Sub UserControl1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
  Invalidate()
End Sub
Ezzel kontrolunk elkészült, választhatjuk a Build parancsot. Ekkor létrejön egy DLL állomány, mely tartalmazza a kontrolt. Ha egy olyan projectet szeretnénk készíteni, amelyben használjuk az imént létrehozott projectet, akkor ehhez előbb a kontrolt fel kell vennünk a Toolbox-ra. Ehhez kattintsunk rá jobb gombbal, majd válasszuk a Customize ToolBox menüpontot. A megjelenő ablakban válasszuk a .NET Frameworks Components lapot és itt a Browse gombot, majd keressük elő az imént létrehozott DLL-t. A hozzáadás után a megjelenő listában ekkor látható lesz az új komponensünk Control1 névvel. Az előtte lévő CheckBox-ot jelöljük ki, majd zárjuk be az ablakot. Ennek hatására az új komponens megjelenik a ToolBox-on és most már használhatjuk.
A mellékelt WindowsApplication1 könyvtárban lévő projectben felhasználjuk a saját kontrolt, amelynek most a megjelenésen kívül más funkciója nincs.

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |