Risolvere i problemi relativi alla creazione di controlli e componenti

In questo argomento vengono elencati i problemi comuni seguenti che si verificano durante lo sviluppo di componenti e controlli:

  • Impossibile aggiungere un controllo alla casella degli strumenti

  • Impossibile eseguire il debug del componente o controllo utente di Windows Forms

  • L'evento viene generato due volte nel componente o controllo ereditato

  • Errore in fase di progettazione: "Impossibile creare il componente nome componente"

  • STAThreadAttribute

  • L'icona del componente non appare nella casella degli strumenti

Impossibile aggiungere un controllo alla casella degli strumenti

Se si vuole aggiungere un controllo personalizzato creato in un altro progetto o un controllo di terze parti alla casella degli strumenti, è necessario farlo manualmente. Se il progetto corrente include il controllo o il componente, deve automaticamente apparire nella casella degli strumenti. Per altre informazioni, vedere Procedura dettagliata: Compilare automaticamente la casella degli strumenti con componenti personalizzati.

Per aggiungere un controllo alla casella degli strumenti

  1. Fare clic con il pulsante destro del mouse nella casella degli strumenti e selezionare Scegli elementi dal menu di scelta rapida.

  2. Nella finestra di dialogo Scegli elementi della Casella degli strumenti aggiungere il componente:

    • per aggiungere un componente o un controllo di .NET Framework, fare clic sulla scheda Componenti di .NET Framework

      - oppure -

    • per aggiungere un componente COM o un controllo ActiveX, fare clic sulla scheda Componenti COM.

  3. Se il controllo è indicato nella finestra di dialogo, verificare se è selezionato e quindi fare clic su OK.

    Il controllo viene aggiunto alla della casella degli strumenti.

  4. Se il controllo non è indicato nella finestra di dialogo, eseguire queste operazioni:

    1. Fare clic sul pulsante Sfoglia .

    2. Passare alla cartella che contiene il file DLL in cui si trova il controllo.

    3. Selezionare il file DLL e fare clic su Apri.

      Il controllo viene visualizzato nella finestra di dialogo.

    4. Verificare se il controllo è selezionato e quindi fare clic su OK.

      Il controllo viene aggiunto alla casella degli strumenti.

Impossibile eseguire il debug del componente o controllo utente di Windows Forms

Se il controllo deriva dalla UserControl classe , è possibile eseguirne il debug con il contenitore di test. Per altre informazioni, vedere Procedura: Eseguire il test del comportamento in fase di esecuzione di UserControl.

Altri componenti e controlli personalizzati non sono progetti autonomi. Devono essere ospitati da un'applicazione, ad esempio un progetto Windows Form. Per eseguire il debug di un controllo o un componente, è necessario aggiungerlo a un progetto Windows Form.

Per eseguire il debug di un controllo o componente

  1. Scegliere Compila soluzione dal menu Compila per creare il progetto.

  2. Scegliere Aggiungi dal menu File, quindi selezionare Nuovo progetto per aggiungere un progetto di test all'applicazione.

  3. Nella finestra di dialogo Aggiungi nuovo progetto scegliere Applicazione Windows come tipo di progetto.

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Riferimenti per il nuovo progetto. Nel menu di scelta rapida fare clic su Aggiungi riferimento per aggiungere un riferimento al progetto contenente il controllo o il componente.

  5. Creare un'istanza del controllo o componente nel progetto di test. Se il componente si trova nella casella degli strumenti, è possibile trascinarlo nell'area di progettazione oppure creare l'istanza a livello di codice, come illustrato nell'esempio di codice seguente.

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

    È ora possibile eseguire il debug del controllo o del componente come di consueto.

Per altre informazioni sul debug, vedere Debug in Visual Studio e Procedura dettagliata: Debug di controlli di Windows Form personalizzati in fase di progettazione.

L'evento viene generato due volte nel componente o controllo ereditato

Ciò è probabilmente dovuto a una clausola Handles duplicata. Per altre informazioni, vedere Risoluzione dei problemi relativi ai gestori eventi ereditati in Visual Basic.

Errore in fase di progettazione: "Impossibile creare il componente nome componente"

Il componente o il controllo deve fornire un costruttore senza parametri senza parametri. Quando l'ambiente di progettazione crea un'istanza del componente o controllo, non tenta di definire parametri per gli overload del costruttore che accettano tali parametri.

STAThreadAttribute

STAThreadAttribute Informa Common Language Runtime (CLR) che Windows Form usa il modello apartment a thread singolo. È possibile riscontrare un comportamento imprevisto se non si applica questo attributo al metodo Main dell'applicazione Windows Form. Ad esempio, le immagini di sfondo potrebbero non essere visualizzate per i controlli come ListView. Alcuni controlli possono inoltre richiedere questo attributo per il funzionamento corretto del completamento automatico e del trascinamento della selezione.

L'icona del componente non appare nella casella degli strumenti

Quando si usa ToolboxBitmapAttribute per associare un'icona al componente personalizzato, la bitmap non viene visualizzata nella casella degli strumenti per i componenti generati automaticamente. Per visualizzare la bitmap, ricaricare il controllo usando la finestra di dialogo Scegli elementi della casella degli strumenti. Per altre informazioni, vedere Procedura: Specificare una bitmap nella casella degli strumenti per un controllo.

Vedi anche