Yksinkertaiset komponentit - Luento 5

Luodaan yksinkertainen oma komponentti.

Komponentit

Luentoesimerkki (luento.zip)

Hyvä ohje komponenteista löytyy artikkelista Architecture and Design of Windows Forms Custom Controls

// propertyn properties-listauksen kustomointia
        [Category("Autolaskuri"),
        Description("Tähän autolaskurin kuvaus"),
        DefaultValue(0),
        Browsable(true)]
        public int Laskuri
        {
            get { return pLaskuri; }
            set { if (value >= 0) pLaskuri = value;  }
        }

// seuraavalla testataan onko komponentti design-moodissa
// ei toimi kontrollin konstruktorissa eikä aina muulloinkaan...
            if (this.DesignMode) return;

Identifying the Run-Time and the Design Mode

Jos propertyn palautustyyppi on joku muu kuin merkkijono tai numero niin pitää määritellä kaksi lisäfunktiota jotka ovat muotoa:

// antaa propertylle sen oletusarvon
Reset<propertyn_nimi>
// vertaa annettua arvoa oletusarvoon
ShouldSerialize<propertyn_nimi>

esimerkiksi

public void ResetOmaVari()
{
      OmaVari = Color.Blue;
}

public bool ShouldSerializeOmaVari()
{
      return OmaVari != Color.Blue;
}

Omien kontrollien kaataessa Visual Studion on virheiden etsiminen todella hankalaa. Jotain vinkkiä saa artikkeleista: Good Way to Debug Visual Studio Designer Errors ja Debugging Design-Time Controls

Lisätietoa

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/luennot/luento5/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2012-03-22 14:06:19
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta