Ezt a műveletet elvégezhetjük úgy is, hogy nem egy meglévő komponenst helyezünk a Form-ra, hanem készítünk egy újat. A Class1.cs forrásban található egy olyan NewTextBox komponens, melyet egy TextBox-ból származtattunk, de egy kissé megváltoztattuk alapértelmezett tulajdonságait.
Így például új alapértelmezett háttérszínt adtunk és rögtön létrehoztunk hozzá egy TextChanged esemény kezelő függvényt is.
public NewTextBox()
{
BackColor = Color.Yellow;
TextChanged += new System.EventHandler(DoTextChanged);
}
Amikor tehát változik az új kontrolban a szöveg, akkor annak háttérszínét is változtatjuk.
protected void DoTextChanged(object sender, System.EventArgs e)
{
Random r = new Random();
BackColor = Color.FromArgb(r.Next(56)+200, r.Next(56)+200, r.Next(56)+200);
}
Ezek után áttérhetünk a Form1.cs forráskódjára, ahol létrehozzuk futási időben az új objektumunkat. A létrehozás módszerét tekintve most teljesen mindegy, hogy egy saját osztályban lévő objektumot helyezünk el újként a Form-on vagy egy meglévőt. Így tehát az alábbi módszerrel épp úgy megjeleníthetnénk mondjuk egy Button-t, mint a saját NewTextBox-unkat.
Ehhez először is deklarálunk egy privát változót.
private NewTextBox textBox2;
Ezt követően a Form-unk konstruktorában elvégezzük a létrehozását, majd pozícionáljuk a Form-on. Végül a Form Controls property-éhez hozzá is kell adnunk az új objektumot annak érdekében, hogy az látható is legyen, vagyis felkerüljön valóban a Form-ra.
textBox2 = new NewTextBox();
textBox2.Location = new System.Drawing.Point (24, 50);
Controls.Add(textBox2);