webentwicklung-frage-antwort-db.com.de

Laden des Toolboxelements fehlgeschlagen. Es wird aus der Toolbox entfernt

Ich habe eine WinForm-Anwendung. Ich habe auch meinen eigenen User Control dafür erstellt. Alles hat gut funktioniert. Bis heute erhielt ich die Fehlermeldung, wenn ich versuche, sie wieder zu meinem Programm hinzuzufügen (ich habe sie nie entfernt. Das hat Visual Studio getan).

Fehler beim Laden des Toolboxelements #UserControlName. Es wird aus Der Toolbox entfernt.

Ich habe es in meinem Lösungs-Explorer, aber es verschwindet nach diesem Fehler aus meiner Toolbox. Ich erhalte auch die Warnung, die besagt:

'#UserControlName' wird nie zugewiesen und hat immer den Standardwert Von null.

Und wenn ich mir meinen Designer-Code anschaue, stimmt das. Aber ich habe nichts mit meinem Designer-Code gemacht. Meine Benutzersteuerung ist dort definiert, aber nicht instanziiert. Wie kann ich es zurücklegen?

Hat es etwas damit zu tun, dass ich meine Build-Plattform von x32 in x64 geändert habe? Wenn dies der Fall ist, werde ich überrascht sein, weil das Programm nach dieser Änderung gut funktionierte.

14
Disasterkid

In Zeiten wie diesen müssen Sie mit dem Designer-Code basteln. Solange Sie keine drastischen Änderungen am Designer-Code vornehmen, sollten Sie nichts kaputt machen. Um auf Nummer sicher zu gehen, instanziieren Sie das Objekt erneut, wo die anderen Steuerelemente instanziiert werden (am oberen Rand der Seite). Der Designer sollte die Lücken für Eigenschaften und ähnliches ausfüllen.

Dies sollte auch das Steuerelement an die Toolbox zurückgeben.

Ich hatte bei einer unserer Anwendungen das gleiche Problem und konnte keine Lösung finden. Also habe ich die Benutzer- und benutzerdefinierten Steuerelemente manuell erstellt. Nachdem ich das Web erneut durchsucht hatte, fand ich endlich heraus, warum der Designer bei diesem Projekt versagt. Die Antwort ist, dass das Projekt 64-Bit ist und Visual Studio immer noch keine 64-Bit-Version hat, es ist jedoch immer noch 32-Bit. Der Designer konnte die Steuerelemente daher nicht in 64-Bit-Anwendungen oder in Klassenbibliotheken laden. Lesen Sie dazu den Artikel von Microsoft. Auf der Visual Studio-Website befand sich ein Artikel, der jedoch entfernt wurde. Die Antwort finden Sie im Support-Forum von Visual Studio.

https://social.msdn.Microsoft.com/Forums/vstudio/de-de/77e10b58-43cc-4aab-919f-888f14f99571/x64-class-library-of-user-controls?forum=csharpgeneral

16
NthDeveloper

Ich hatte in letzter Zeit das gleiche Problem. Da dies (auch keine andere Antwort auf dieser Website und im Internet) mir wirklich geholfen hat, habe ich den Weg gefunden, es zu beheben.
Reinigen Sie einfach die Dateien und erstellen Sie die Lösung neu. So einfach ist das.

16
P.K.

Sie müssen die Benutzersteuerung nicht notwendigerweise manuell einfügen. Ich hatte die gleiche Situation und es gab einen Grund dafür.
In meinem Fall ist es fehlgeschlagen, weil die EXE-Assembly mithilfe des CLR-Unterstützungstyps /clr in den 'mixed-mode' kompiliert wurde. Nach der Änderung des Typs 'managed-only' durch Festlegen des Typs /clr:pure hat es funktioniert.
Für Details siehe meine Antwort hier bei SO .

2
Tobias Knauss

Nachdem ich viele Stunden mit diesem Problem mit einem großen benutzerdefinierten Steuerelement mit wenigen Änderungen gegenüber einer vorherigen Arbeitskopie in der Quellcodeverwaltung gekratzt hatte, kopierte ich den gesamten Code in einen neuen Kontrollnamen und eine neue Datei, und alles funktionierte. 

Dies dient dazu, die Problemzeile (n) des Codes zu identifizieren, da der Debugger nicht zusammenarbeiten würde. Das kopierte Steuerelement (zusammen mit einer Menge Supportcode und Modulen) funktionierte einwandfrei.

Dies sind also die sehr einfachen Schritte, die meinen ursprünglichen Code repariert haben

  1. Umbenennen der Datei im Projektmappen-Explorer (am Ende habe ich ein s hinzugefügt)
  2. Wiederaufbau
  3. Testen Sie das Steuerelement jetzt zu einem einfachen Formular
  4. Benennen Sie das Steuerelement wieder in seinen ursprünglichen Namen um

Schritt 4 kann für Sie optional sein, aber wenn Sie über eine Quellcodeverwaltung verfügen, die sich in einer Bibliothek befindet, möchten Sie dies tun.

Dies brachte die Kontrolle auf alle meine Formulare zurück, die nicht funktionierten (soweit ich das beurteilen kann). Es scheint, dass das Problem in VS ist, das sich irgendwie daran erinnert, dass es nicht gefällt?

Hoffe, das hilft und ich hoffe, ich finde diese Nachricht das nächste Mal, wenn ich die Fixierung vergessen habe :)

P.S. Wenn Sie die Lösung bereinigen, neu erstellen und/oder erneut ausführen, handelt es sich bei der alten Lösung um dieses Problem, dieses Mal war es jedoch nur ein benutzerdefiniertes Steuerelement in einer ganzen Klasse (DLL). Hoffe das hilft.

1
Tim F.

Nachdem ich das userControl hinzugefügt habe, erstelle ich die Anwendung neu. Anschließend wurden die Elemente in der Toolbox aktualisiert, indem Sie auf projects => Refresh project toolbox items wechseln

0
Margaret Sitati

Wechseln Sie zu AnyCPU, und erstellen Sie das Projekt erneut. Visual Studio hat Probleme mit Steuerelementen, die auf 64 Bit eingestellt sind.

0
Hrvoje Matić

In meinem Fall hat es geholfen, die Header-Dateien der erstellten Benutzersteuerelemente am oberen Rand des Formulars, in dem diese Steuerelemente verwendet werden sollen, manuell einzuschließen.

0
thewhiteambit

Überprüfen Sie in Ihrer form.designer-Datei, ob eine Eigenschaft mit diesem Typ zurückgeblieben ist. Es ist mir mehrmals passiert. Nachdem ich diese Zeile entfernt und das Projekt neu erstellt hatte, funktionierte alles. 

0
Hrvoje Matić