Freigeben über


Problembehandlung bei Steuerelement- und Komponentenerstellung

In diesem Thema werden die folgenden allgemeinen Probleme aufgeführt, die beim Entwickeln von Komponenten und Steuerelementen auftreten:

  • Es kann kein Steuerelement zur Toolbox hinzugefügt werden.

  • Das Windows Forms-Benutzersteuerelement oder die Komponente kann nicht gedebuggt werden.

  • Das Ereignis wird zweimal in einem geerbten Steuerelement oder einer Komponente ausgelöst.

  • Design-Time Fehler: "Erstellung der Komponente 'Komponentenname' nicht möglich"

  • STAThreadAttribute

  • Das Komponentensymbol wird in der Toolbox nicht angezeigt.

Kann Steuerelement nicht zur Toolbox hinzufügen

Wenn Sie dem Toolbox-ein benutzerdefiniertes Steuerelement hinzufügen möchten, das Sie in einem anderen Projekt oder einem Drittanbietersteuerelement erstellt haben, müssen Sie dies manuell ausführen. Wenn das aktuelle Projekt Ihr Steuerelement oder Ihre Komponente enthält, sollte es automatisch in der Toolbox angezeigt werden. Weitere Informationen finden Sie unter Anleitung: Automatisches Auffüllen der Toolbox mit benutzerdefinierten Komponenten.

So fügen Sie der Toolbox ein Steuerelement hinzu

  1. Klicken Sie mit der rechten Maustaste auf die Toolbox und wählen Sie im Kontextmenü "Elemente auswählen"aus.

  2. Fügen Sie im Dialogfeld Toolboxelemente auswählen die Komponente hinzu:

    • Wenn Sie eine .NET Framework-Komponente oder ein .NET Framework-Steuerelement hinzufügen möchten, klicken Sie auf die Registerkarte .NET Framework-Komponenten.

      –oder–

    • Wenn Sie eine COM-Komponente oder ein ActiveX-Steuerelement hinzufügen möchten, klicken Sie auf die Registerkarte COM-Komponenten.

  3. Wenn das Steuerelement im Dialogfeld aufgeführt ist, vergewissern Sie sich, dass es ausgewählt ist, und klicken Sie dann auf OK.

    Das Steuerelement wird der Toolboxhinzugefügt.

  4. Wenn Ihr Steuerelement nicht im Dialogfeld aufgeführt ist, gehen Sie wie folgt vor:

    1. Klicken Sie auf die Schaltfläche Durchsuchen.

    2. Navigieren Sie zu dem Ordner, der die .dll Datei mit Ihrem Steuerelement enthält.

    3. Wählen Sie die .dll Datei aus, und klicken Sie auf Öffnen.

      Ihr Steuerelement wird im Dialogfeld angezeigt.

    4. Vergewissern Sie sich, dass das Steuerelement ausgewählt ist, und klicken Sie dann auf OK.

      Ihr Steuerelement wird der Toolboxhinzugefügt.

Das Windows Forms-Benutzersteuerelement oder die Komponente kann nicht gedebuggt werden.

Wenn Ihr Steuerelement von der UserControl Klasse abgeleitet ist, können Sie das Laufzeitverhalten mit dem Testcontainer debuggen. Weitere Informationen finden Sie unter Anleitung: Testen des Run-Time Verhaltens eines Benutzersteuerelements.

Andere benutzerdefinierte Steuerelemente und Komponenten sind keine eigenständigen Projekte. Sie müssen von einer Anwendung wie einem Windows Forms-Projekt gehostet werden. Zum Debuggen eines Steuerelements oder einer Komponente müssen Sie es einem Windows Forms-Projekt hinzufügen.

So beheben Sie Fehler in einem Steuerelement oder einer Komponente

  1. Klicken Sie im Menü Erstellen auf Lösung erstellen, um die Lösung zu erstellen.

  2. Wählen Sie im Menü Datei- die Option Hinzufügenund dann Neues Projekt, um Ihrer Anwendung ein Testprojekt hinzuzufügen.

  3. Wählen Sie im Dialogfeld Neues Projekt hinzufügen den Projekttyp Windows-Anwendung aus.

  4. Klicken Sie im Projektmappen-Explorermit der rechten Maustaste auf den Knoten Verweise für das neue Projekt. Klicken Sie im Kontextmenü auf Referenz hinzufügen, um eine Referenz auf das Projekt hinzuzufügen, das das Steuerelement oder die Komponente enthält.

  5. Erstellen Sie eine Instanz Ihres Steuerelements oder Ihrer Komponente im Testprojekt. Wenn sich Ihre Komponente in der Toolbox-befindet, können Sie sie auf die Designeroberfläche ziehen oder die Instanz programmgesteuert erstellen, wie im folgenden Codebeispiel gezeigt.

    Dim Component1 As New MyNeatComponent()
    
    MyNeatComponent Component1 = new MyNeatComponent();
    

    Sie können das Steuerelement oder die Komponente jetzt wie gewohnt debuggen.

Weitere Informationen zum Debuggen finden Sie unter Debuggen in Visual Studio und Exemplarische Vorgehensweise: Debuggen von benutzerdefinierten Windows Forms-Steuerelementen zur Entwurfszeit.

Das Ereignis wird zweimal in geerbten Steuerelementen oder Komponenten ausgelöst.

Dies ist wahrscheinlich auf eine duplizierte Handles Klausel zurückzuführen. Weitere Informationen finden Sie unter Problembehandlung von geerbten Ereignishandlern in Visual Basic.

Design-Time Fehler: "Fehler beim Erzeugen der Komponente 'Komponentenname'"

Die Komponente oder das Steuerelement muss einen parameterlosen Konstruktor ohne Parameter bereitstellen. Wenn die Entwurfsumgebung eine Instanz Ihrer Komponente oder Ihres Steuerelements erstellt, versucht sie nicht, Parameter für Konstruktorüberladungen bereitzustellen, die Parameter annehmen.

STAThreadAttribute

Die STAThreadAttribute informiert die Common Language Runtime (CLR), dass Windows Forms das Singlethread-Apartmentmodell verwendet. Möglicherweise bemerken Sie unbeabsichtigtes Verhalten, wenn Sie dieses Attribut nicht auf die Main-Methode Ihrer Windows Forms-Anwendung anwenden. Hintergrundbilder werden z. B. für Steuerelemente wie ListViewmöglicherweise nicht angezeigt. Einige Steuerelemente erfordern dieses Attribut möglicherweise auch, um das korrekte Verhalten von Autovervollständigung und Ziehen und Ablegen sicherzustellen.

Das Komponentensymbol wird in der Toolbox nicht angezeigt.

Wenn Sie ToolboxBitmapAttribute verwenden, um ihrer benutzerdefinierten Komponente ein Symbol zuzuordnen, wird die Bitmap nicht in der Toolbox für automatisch generierte Komponenten angezeigt. Um die Bitmap anzuzeigen, laden Sie das Steuerelement neu, indem Sie das Dialogfeld Toolbox-Elemente auswählen. Weitere Informationen finden Sie unter So geht's: Ein Toolbox-Bitmap für ein Steuerelement bereitstellen.

Siehe auch