WinForms 16 – Tvorba vlastného ovládacieho prvku

V dnešnom PLUS diely si ukážeme ako vytvoriť vlastný ovládací prvok, a to ako cez designer, tak z kódu.

 

Už sme si ukázali množstvo rôznych vstavaných prvkov, no neukázali sme si ako vytvoriť vlastný, čo dnes musíme napraviť, aj keď len zľahka.

Automatická tvorba vlastného ovládacieho prvku

Vlastný ovládací prvok (User Control) je možné vygenerovať tým, že vyberiete pridať novú možnosť, kde zo záložky Windows Forms a vyberiete User Control. Tým sa vám automatický vygeneruje základ. Vyzerá to podobne ako panel okna.

 

Úprava v designéri

Po vygenerovaní základu doň môžete pridávať všetky ovládacie prvky, ako keď pracujete z formom. Rovnako tam funguje pridávanie eventov, pričom po dvojkliku na panel sa vám vygeneruje event Load. V kóde môžete vytvárať funkcie a vlastné eventy, ktoré sa vám zobrazia v desigeri po pridaní.

Vami vytvorený User Control je možné používať ako ktorýkoľvek iný.

Poznámka : Ak budete chcieť vami vytvorený ovládací prvok pridať do formu, alebo iného ovládacieho prvku cez designér, musíte vašu aplikáciu najprv Buildnúť.

 

Manuálna tvorba cez samostatnú triedu

Pokiaľ by ste chceli vytvoriť užívateľský prvok sami bez generovania, môžete si vytvoriť vlastnú triedu a pmocou dedenia z triedy Control(System.Windows.Forms.Control). Následne ju môžete upravovať ako chcete. Člen Controls obsahuje všetky prvky, ktoré pridáte. Toto má však aj nepríjemnú stránku – napriek tomu, že je to vaša vlastná trieda, vytvorí sa k nej designer a ten si môže vygenerovať vlastný kód.

 

Manuálna tvorba v rámci cudzej triedy

Namiesto vlastnej triedy, môžete ako vytvoriť nový objekt typu Control a ovplyvňovať jeho obsah cez inú triedu, napríklad takto.

Control c = new Control() { Location= new Point(30,30), Size = new Size(100,100), BackColor= Color.AliceBlue};
c.Controls.Add(new Button() { Location = new Point(30, 30), Text = "TEST" });
this.Controls.Add(c);

 

 

Týmto by sme si mohli ukončiť tento diel a nabudúce si ukážeme pravdepodobne už v poslednom diely praću z TabControlom.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená.

Scroll to Top