myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Knowledge Base » Artikel » [Artikel] UserControls / abgeleitete Controls im Designer von Visual Studio benutzen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

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

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
dr4g0n76
myCSharp.de-Poweruser/ Experte

avatar-1768.jpg


Dabei seit: 07.07.2005
Beiträge: 2.880
Entwicklungsumgebung: SharpDevelop/VS.NET
Herkunft: Deutschland


dr4g0n76 ist offline

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

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

Dieser Beitrag wurde 9 mal editiert, zum letzten Mal von dr4g0n76 am 07.07.2008 14:41.

28.04.2007 11:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
webstarg webstarg ist männlich
myCSharp.de-Mitglied

Dabei seit: 21.07.2006
Beiträge: 558
Entwicklungsumgebung: Visual Studio 2008 Prof.
Herkunft: München, Deutschland


webstarg ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo!

Sehr guter Artikel!

webstarg

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von webstarg am 29.04.2007 15:08.

28.04.2007 21:43 Beiträge des Benutzers | zu Buddylist hinzufügen
webstarg webstarg ist männlich
myCSharp.de-Mitglied

Dabei seit: 21.07.2006
Beiträge: 558
Entwicklungsumgebung: Visual Studio 2008 Prof.
Herkunft: München, Deutschland


webstarg ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo!

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

Dankeschön.

mfg
webstarg
06.05.2007 20:36 Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
0815Coder
myCSharp.de-Mitglied

avatar-242.gif


Dabei seit: 08.12.2005
Beiträge: 767


0815Coder ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
02.07.2007 23:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr.
slzbi slzbi ist männlich
myCSharp.de-Mitglied

Dabei seit: 23.09.2007
Beiträge: 50
Entwicklungsumgebung: MS Visual Studio 2005
Herkunft: Deutschland


slzbi ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

die abbildungen können nicht dargestellt werden??
02.07.2008 12:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JunkyXL JunkyXL ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3234.gif


Dabei seit: 02.05.2006
Beiträge: 1.665
Entwicklungsumgebung: Visual Studio 2010 Ultimate
Herkunft: Ein paar Bytes südlich von string


JunkyXL ist offline Füge JunkyXL Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von webstarg:
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:

C#-Code:
[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.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JunkyXL am 03.07.2008 16:19.

03.07.2008 16:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 12 Jahre.
Der letzte Beitrag ist älter als 11 Jahre.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.10.2019 09:07