Kada radite neki program, najbolje da je on podeljen u module koji se lako mogu napraviti, a zatim i dodati na formu.
Sada cu vam pokazati kako se kontrole dodaju dinamicki na neku formu...
U ASP.NETu je ovo jednostavno.
Control c = this.LoadControl("PutanjaKontrole"); // .ascx extenzija
c.ID = "ImeKontrole";
PlaceHolder.Controls.Add(c);
Gotovo .
Za Windows aplikaciju je komlikovanije.
Prvo, morate ukljuciti Reflection namespace
using System.Reflection;
Prvo sto morate da uradite jeste da ucitate Assembly.
Assembly ass = Assembly.LoadFile(Putanja_DLL_Filea);
Type t = ass.GetType(Namespace.Class); // Ovde morate navesti tacan namespace.class do zeljene kontrole
Object o = Activator.CreateInstance(t); // Kreira instancu, kao sto bi obicno radili sa NekaKlasa k = new NekaKlasa()
UserControl uc = ( (UserControl)(o) ); // Konvertuje izabrani objekat u tip UserControl
panel1.Controls.Add(uc); // I na kraju dodaje nasu ucitanu kontrolu na panel
Kada se ovo ukombinuje sa citanjem kontrola iz xmla ili iz baze, dobije se jedna prava module oriented aplikacija.
Za sledeci tutorijal cu prikazati kreiranje modula koji bi mogao da se ucitava preko ovog, prethodno opisanog, koda.
Happy coding...
|