web-dev-qa-db-ger.com

Wie Einfügen eines UserControl in Visual Studio ToolBox

Ich habe in meinem Projekt eine Benutzerkontrolle vorgenommen, und nachdem ich ein Projekt erstellt habe, muss ich es in meine Toolbox einfügen und es als allgemeines Steuerelement verwenden. aber ich kann nicht Die Variable UserControl befindet sich in meinem Projekt-Namespace, und ich habe versucht, Choose Item im Rechtsklick-Menü zu verwenden, aber ich habe keine Möglichkeit gefunden, sie hinzuzufügen. 

85
Saeed

Ich gehe davon aus, dass Sie VS2010 verwenden (so haben Sie die Frage als gekennzeichnet.) Ich hatte Probleme, sie automatisch in die Toolbox wie in VS2008/2005 aufzunehmen Toolbox automatisch ausfüllen!

Gehen Sie zu Extras> Optionen> Windows Forms-Designer> Allgemein 

Am Ende der Liste finden Sie Toolbox> AutoToolboxPopulate, das bei einer Neuinstallation standardmäßig auf False gesetzt ist. Setzen Sie es auf "True" und erstellen Sie Ihre Lösung neu.

Die Benutzersteuerelemente in Ihrer Lösung sollten automatisch zur Toolbox hinzugefügt werden. __ Sie müssen möglicherweise auch die Lösung neu laden.

104
DaveF

Klicken Sie mit der rechten Maustaste auf die Symbolleiste, und klicken Sie dann im Kontextmenü auf "Element auswählen". Ein Dialog mit registrierten Komponenten wird angezeigt. Klicken Sie in diesem Dialog auf "Durchsuchen", um Ihre Assembly mit der gewünschten Benutzersteuerung auszuwählen.

PS . Diese Assembly sollte vorher registriert werden.

34
Arseny

Ich habe festgestellt, dass das Benutzersteuerelement über einen parameterlosen Konstruktor verfügen muss, sonst wird es nicht in der Liste angezeigt. Zumindest war das in vs2005 wahr.

21
scott

Verwendung von VS 2010:

Nehmen wir an, Sie haben ein Windows.Forms-Projekt. Sie fügen dem Projekt ein UserControl hinzu (etwa MyControl) und entwerfen alles. Jetzt möchten Sie es Ihrer Toolbox hinzufügen.

Sobald das Projekt einmal erfolgreich erstellt wurde, wird es in Ihren Framework-Komponenten angezeigt. Klicken Sie mit der rechten Maustaste auf die Toolbox, um das Kontextmenü aufzurufen, wählen Sie "Choose Items ..." aus und navigieren Sie zum Namen Ihres Steuerelements (MyControl) auf der Registerkarte ".NET Framework-Komponenten".

Vorteil gegenüber der Verwendung von DLLs: Sie können die Steuerelemente in demselben Projekt wie Ihr Formular bearbeiten, und das Formular wird mit den neuen Steuerelementen erstellt. Die Steuerung steht jedoch nur für dieses Projekt zur Verfügung.

Hinweis: Wenn das Steuerelement Build-Fehler aufweist, beheben Sie diese, bevor Sie mit den enthaltenen Formularen fortfahren oder der Designer hat einen Herzinfarkt.

14
Nick

Ich hatte viele Benutzersteuerelemente, aber einer lehnte die Anzeige in der Toolbox ab, obwohl ich die Lösung neu erstellt hatte und im Dialogfeld Choose Items ... geprüft wurde. 

Lösung: 

  1. Im Solution Explorer I Mit Rechtsklick die betreffende Benutzersteuerungsdatei ausgewählt und Aus Projekt ausschließen
  2. Rebuild die Lösung
  3. Klicken Sie mit der rechten Maustaste auf das Benutzersteuerelement, und wählen Sie In Projekt einbeziehen (vorausgesetzt, Sie haben Alle Dateien anzeigen im Solution Explorer aktiviert).

Hinweis Dies setzt auch voraus, dass Sie die Option AutoToolboxPopulate aktiviert haben. Wie @DaveF Antwort schlägt.

Alternative Lösung: Ich bin nicht sicher, ob dies funktioniert, und ich konnte es nicht versuchen, da ich mein Problem bereits gelöst habe. Wenn Sie jedoch die Benutzersteuerung im Dialogfeld Choose Items ... deaktiviert haben, klicken Sie auf OK öffnete es wieder und überprüfte die Benutzersteuerung. Das könnte auch funktionieren.

6
MoMo

Es gibt mehrere Möglichkeiten.

  1. Wählen Sie in Ihrem ursprünglichen Projekt Datei | Vorlage exportieren
    .__ Wählen Sie dann ItemTemplate aus und folgen Sie dem Assistenten. 

  2. Verschieben Sie Ihr UserControl in eine separate ClassLibrary (und fixieren Sie Namespaces usw.).
    Fügen Sie der Klassenbibliothek einen Ref von Projekten hinzu, die es benötigen. Kümmern Sie sich nicht um die GAC oder etwas anderes, nur um die Datei DLL. 

Ich würde nicht raten, ein UserControl in die normale ToolBox zu setzen, aber es kann gemacht werden. Siehe die Antwort von @Arseny

4
Henk Holterman

Soweit ich weiß, können Sie Ihre Benutzerkontrolle in Ihrem aktuellen Projekt in die Toolbox ziehen. Wenn Sie ein anderes Projekt auswählen, ist das Benutzersteuerelement nicht mehr verfügbar. Ich denke, Sie müssen ein eigenes Projekt für die Steuerungsbibliothek erstellen:

Fügen Sie in Ihrer Projektmappe ein neues Projekt hinzu. Wählen Sie jedoch als Projektvorlage "Klassenbibliothek". Fügen Sie in diesem Projekt ein Benutzersteuerelement hinzu und machen Sie alles, was Sie tun müssen. Sobald dies erledigt ist, erstellen Sie es und Sie haben selbst eine DLL-Datei (diese kann leicht im Projektordner bin/debug gefunden werden.)

Sie können diese DLL zu Ihrer Toolbox hinzufügen (Rechtsklick hinzufügen ...) und sie bleibt in allen Projekten erhalten!

2
MUG4N

In meinem Fall konnte ich keine der Steuerelemente im Projekt sehen. Nur wenn Sie mit der rechten Maustaste auf toolBox klicken und "Alle anzeigen" auswählen, habe ich sie gesehen, aber sie waren deaktiviert ...

Das Ändern des Projekttyps von der Windows-Anwendung in ClassLibrary wurde vorgenommen.

2
ephraim

Grundlegende Frage, wenn Sie Generics in Ihrer Basissteuerung verwenden ..__ Wenn ja:

sagen wir, wir haben die Kontrolle:

public class MyComboDropDown : ComboDropDownComon<MyType>
{
    public MyComboDropDown() { }
}

MyComboDropDown erlaubt das Öffnen des Designers nicht und wird nicht in der Toolbox angezeigt. Warum? Weil die Basissteuerung noch nicht kompiliert ist - wenn MyComboDropDown erfüllt ist . Sie können Folgendes ändern:

public class MyComboDropDown : MyComboDropDownBase
{
    public MyComboDropDown() { }
}

public class MyComboDropDownBase : ComboDropDownComon<MyType>
{

}

Nach dem Wiederherstellen und Zurücksetzen der Toolbox sollte MyComboDropDown im Designer und auch in der Toolbox angezeigt werden können

1
Andrzej

Rekompilieren hat den Trick für mich gemacht!

0
Lex van Buiten

Das Problem mit meinem Designer war 32 gegen 64 Bit. Ich könnte das Steuerelement zur Toolbox hinzufügen, nachdem ich die Anweisungen in befolgt habe, kann der Toolbox keine Steuerelemente aus 64-Bit-Assemblies hinzufügen oder in Designers in dem MS KB-Artikel von Visual Studio IDE verwenden.

0
Smita