Laden...

[Artikel] UserControls / abgeleitete Controls im Designer von Visual Studio benutzen

Erstellt von dr4g0n76 vor 16 Jahren Letzter Beitrag vor 15 Jahren 36.510 Views
dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 16 Jahren
[Artikel] UserControls / abgeleitete Controls im Designer von Visual Studio benutzen

1 DLL-Projekt erstellen

Zuerst erstellen wir ein DLL-Projekt in dem die ganzen von uns erstellten Controls enthalten sein sollen.


Abbildung 1

Ich habe das Projekt Test genannt anstelle von ClassLibrary1. Vielleicht sollte es sinnvoller UserControls oder MyControls heissen. Vergebt einfach einen für euch passenden Namen.

2 Steuerelement(e) erstellen
Ausserdem habe ich ein ganz einfaches Steuerelement erstellt: eine ComboBox deren BackColor im Constructor immer auf blau gesetzt wird.

Nicht vergessen die Verweise einzubauen, bei mir waren das die folgenden beiden:

using System.Windows.Forms;
using System.Drawing;


Abbildung 2

Damit haben wir schon die Hälfte hinter uns.

3 Projekt mit Form laden

Jetzt benötigen wir ein Projekt in dem wir das selbst erstellte Steuerelement mit dem Designer benutzen wollen.

Wenn das Control nicht in die gleiche DLL soll, dann erstellt einfach ein Windows-Forms-Projekt und speichert es ab. Oder ihr benutzt ein schon vorhandenes Projekt.
[IMG][/IMG]
Abbildung 3

4 Steuerelement in Toolbox hinzufügen

Jetzt geht ihr in diesem Projekt auf eine Form, in meinem Beispiel ist das die Form1.

Ihr müßt diese jetzt mit dem Designer anzeigen lassen. Am besten dazu den Projektmappenexplorer öffnen und die ToolBox einblenden.


Abbildung 4

So, jetzt benötgen wir einen Klick in die Toolbox (am besten an einer freien Stelle) mit der rechten Maustaste und selektieren den Menüeintrag „Elemente auswählen“ im aufgehenden Kontextmenü.

Im aufgehenden Dialog wählen wir dann unter „Durchsuchen“ unsere DLL aus, in der die Elemente vorhanden sind die wir mit dem Designer benutzen wollen.


Abbildung 5

Die hinzugefügten Controls werden, wenn diese kein eigenes Icon haben durch ein blaues Zahnrad gekennzeichnet. (s. obenstehendes Bild)
5Steuerelement mit dem Designer auf der Form aufbringen

Jetzt können wir das Steuerelement ganz normal mit dem Designer benutzen und auf der Form aufbringen:

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.

W
558 Beiträge seit 2006
vor 16 Jahren

Hallo!

Sehr guter Artikel!

webstarg

W
558 Beiträge seit 2006
vor 16 Jahren

Hallo!

Könntest du bitte auch noch kurz erklären, wie man dem Objekt ein Icon zuweist?

Dankeschön.

mfg
webstarg

0
767 Beiträge seit 2005
vor 16 Jahren

man kann auch noch ein bisschen tricksen um mehr komfort zu erhalten:
anstatt "Neue Klasse" hinzufügen und dann von ComboBox (oder sonstwas) abzuleiten, wählt man neues "UserControl" und ändert dann die ableitung von : UserControl auf ComboBox.

(nun sollte man mal kurz kompilieren, weil der designer wahrscheinlich im Initialize() im MyCbBox.Designer.cs Properties von UserControl verwendet hat, die die ComboBox aber nicht kennt. Diese zeilen kann man getrost entfernen, war bei mir immer nur eine, könnte aber je nach BasisKlasse auch mehr sein.

Vorteil sit, dass der Designer mit den properties zur verfügung steht und man die Eigenschaften der ComboBox festlegen kann (obwohl nur ein grauer bildschirm angezeigt wird), zB Items hinzufügen, oder wenn man von ListView ableitet, Columns festlegen.

loop:
btst #6,$bfe001
bne.s loop
rts

S
50 Beiträge seit 2007
vor 15 Jahren

die abbildungen können nicht dargestellt werden??

1.665 Beiträge seit 2006
vor 15 Jahren

Könntest du bitte auch noch kurz erklären, wie man dem Objekt ein Icon zuweist?

Die Klasse braucht ein ToolboxBitmap Attribut.
So muss das dann aussehen:

[ToolboxBitmap(typeof(Klassenname), "Klassenname.png")]
public class Klassenname : Control
{
}

Das Bild muss dem Projekt hinzugefügt werden. Im PropertyGrid von dem Bild muss als BuildAction = Embedded Resource gesetzt sein.