Problembehandlung beim Erstellen von Steuerelementen und Komponenten

Dieses Thema listet die folgenden allgemeinen Probleme auf, die beim Entwickeln von Komponenten und Steuerelementen auftreten:

  • Steuerelement kann nicht zur Toolbox hinzugefügt werden

  • Windows Forms-Benutzersteuerelement oder Komponente kann nicht debuggt werden

  • Ereignis wird im geerbten Steuerelement oder der Komponente zweimal ausgelöst

  • Entwurfszeitfehler: „Failed to Create Component 'Component Name'“ („Fehler beim Erstellen der Komponente ‚Komponentenname‘“)

  • STAThreadAttribute

  • Symbol „Komponente“ wird nicht in der Toolbox angezeigt

Steuerelement kann nicht zur Toolbox hinzugefügt werden

Wenn Sie ein benutzerdefiniertes Steuerelement, das Sie in einem anderen Projekt erstellt haben, oder ein Drittanbieter-Steuerelement zur Toolbox hinzufügen möchten, müssen Sie dies manuell vornehmen. Wenn das aktuelle Projekt ein Steuerelement oder eine Komponente enthält, sollte es automatisch in der Toolbox angezeigt werden. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Automatisches Füllen der Toolbox mit benutzerdefinierten Komponenten.

So fügen Sie der Toolbox ein Steuerelement hinzu

  1. Klicken Sie mit der rechten Maustaste auf 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 -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-Steuerelemente.

  3. Wenn das Steuerelement im Dialogfeld aufgelistet ist, bestätigen Sie die Auswahl, und klicken Sie auf OK.

    Das Steuerelement wird zur Toolbox hinzugefügt.

  4. Wenn Ihr Steuerelement nicht im Dialogfeld aufgelistet ist, führen Sie folgende Schritte aus:

    1. Klicken Sie auf die Schaltfläche Durchsuchen .

    2. Navigieren Sie zum Ordner mit der DLL-Datei, die Ihr Steuerelement enthält.

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

      Das Steuerelement wird im Dialogfeld angezeigt.

    4. Bestätigen Sie die Auswahl des Steuerelements, und klicken Sie dann auf OK.

      Ihr Steuerelement wird zur Toolbox hinzugefügt.

Windows Forms-Benutzersteuerelement oder Komponente kann nicht debuggt werden

Wenn Ihr Steuerelement von der UserControl-Klasse abgeleitet ist, können Sie sein Laufzeitverhalten mit dem Testcontainer debuggen. Weitere Informationen finden Sie unter Vorgehensweise: Testen des Laufzeitverhaltens eines UserControl.

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 sie zu einem Windows Forms-Projekt hinzufügen.

So debuggen Sie ein Steuerelement oder eine Komponente

  1. Klicken Sie im Menü Erstellen auf Projektmappe erstellen, um eine Projektmappe zu erstellen.

  2. Wählen Sie im Menü DateiHinzufügen und dann Neues Projekt aus, um ein Testprojekt zu Ihrer Anwendung hinzuzufügen.

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

  4. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Verweise für das neue Projekt. Klicken Sie im Kontextmenü auf Verweis hinzufügen, um einen Verweis auf das Projekt mit dem Steuerelement oder der Komponente hinzuzufügen.

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

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

    Sie können jetzt das Steuerelement oder die Komponente 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.

Ereignis wird im geerbten Steuerelement oder der Komponente zweimal ausgelöst

Dies liegt wahrscheinlich an einer doppelten Handles-Klausel. Weitere Informationen finden Sie unter Problembehandlung für geerbte Ereignishandler in Visual Basic.

Entwurfszeitfehler: „Failed to Create Component 'Component Name'“ („Fehler beim Erstellen der Komponente ‚Komponentenname‘“)

Die Komponente oder das Steuerelement müssen einen Konstruktor ohne Parameter bereitstellen. Wenn die Entwurfsumgebung eine Instanz der Komponente oder des Steuerelements erstellt, versucht sie nicht, Parameter auf Konstruktorüberladungen bereitzustellen, die Parameter annehmen.

STAThreadAttribute

Die STAThreadAttribute-Instanz teilt der Common Language Runtime (CLR) mit, dass Windows Forms das Singlethread-Apartment-Modell verwendet. Möglicherweise kommt es zu unbeabsichtigtem Verhalten, wenn Sie dieses Attribut nicht auf die Main-Methode Ihrer Windows Forms Anwendung anwenden. Beispielsweise werden Hintergrundbilder für Steuerelemente wie ListView möglicherweise nicht angezeigt. Einige Steuerelemente benötigen dieses Attribut möglicherweise für korrektes AutoComplete- und Drag & Drop-Verhalten.

Symbol „Komponente“ wird nicht in der Toolbox angezeigt

Wenn Sie ToolboxBitmapAttribute verwenden, um ein Symbol Ihrer benutzerdefinierten Komponente zuzuordnen, wird die Bitmap nicht in der Toolbox für automatisch generierte Komponenten angezeigt. Laden Sie das Steuerelement mithilfe des Dialogfelds Toolboxelemente auswählen neu, um die Bitmap anzuzeigen. Weitere Informationen finden Sie unter Vorgehensweise: Bereitstellen einer Toolboxbitmap für ein Steuerelement.

Weitere Informationen