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 il controllo alla casella degli strumenti
Impossibile eseguire il debug del controllo utente o del componente di Windows Form
L'evento viene attivato due volte nel controllo ereditato o nel componente
Errore Design-Time: "Impossibile creare il componente 'Nome Componente'"
STAThreadAttribute
L'icona del componente non appare nella casella degli strumenti
Impossibile aggiungere il controllo alla casella degli strumenti
Se si desidera 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 contiene il controllo o il componente, verrà visualizzato automaticamente nella casella degli strumenti . Per altre informazioni, vedere Procedura dettagliata: Popolamento automatico della casella degli strumenti con componenti personalizzati.
Per aggiungere un controllo alla casella degli strumenti
Fare clic con il pulsante destro del mouse sul casella degli strumenti
e scegliere Scegliere elementi dal menu di scelta rapida.Nella finestra di dialogo Scegli elementi della toolbox, aggiungere il componente:
Per aggiungere un componente o un controllo .NET Framework, fare clic sulla scheda .NET Framework Components.
– o –
Per aggiungere un componente COM o un controllo ActiveX, fare clic sulla scheda componenti COM.
Se il controllo è elencato nella finestra di dialogo, verificare che sia selezionato e quindi fare clic su OK.
Il controllo viene aggiunto alla casella degli strumenti .
Se il controllo non è elencato nella finestra di dialogo, eseguire le operazioni seguenti:
Fare clic sul pulsante Sfoglia.
Vai alla cartella che contiene il file .dll con il tuo controllo.
Selezionare il file .dll e fare clic su Apri.
Il controllo viene visualizzato nella finestra di dialogo.
Verificare che il controllo sia selezionato e quindi fare clic su OK.
Il tuo controllo viene aggiunto alla casella degli strumenti .
Impossibile eseguire il debug del controllo utente o del componente di Windows Form
Se il controllo deriva dalla classe UserControl, è possibile eseguirne il debug con il contenitore di test. Per ulteriori informazioni, vedere Procedura: Testare il comportamento di un UserControl Run-Time.
Altri controlli e componenti 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 di un componente, è necessario aggiungerlo a un progetto Windows Form.
Per eseguire il debug di un controllo o di un componente
Dal menu Build, fare clic su Crea soluzione per generare la tua soluzione.
Dal menu File scegli Aggiungie poi Nuovo progetto per aggiungere un progetto di test alla tua applicazione.
Nella finestra di dialogo Aggiungi Nuovo Progetto scegliere applicazione Windows per il tipo di progetto.
Nel Esplora Soluzioni, fare clic con il pulsante destro del mouse sul nodo Riferimenti per il nuovo progetto. Scegliere Aggiungi riferimento dal menu di scelta rapida in modo da aggiungere un riferimento al progetto contenente il controllo o il componente.
Crea un'istanza del controllo o del 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 ulteriori informazioni sul debug, vedere Debugging in Visual Studio e Procedura dettagliata: Debug di controlli Windows Form personalizzati in fase di progettazione.
L'evento viene generato due volte nel controllo ereditato o nel componente
È probabile che ciò sia dovuto a una clausola di Handles
duplicata. Per altre informazioni, vedere Risoluzione dei problemi dei gestori eventi ereditati in Visual Basic.
Design-Time Errore: "Impossibile creare il componente 'Nome componente'"
Il componente o il controllo deve fornire un costruttore senza parametri. Quando l'ambiente di progettazione crea un'istanza del componente o del controllo, non tenta di fornire parametri agli overload del costruttore che accettano parametri.
STAThreadAttribute
Il STAThreadAttribute informa il Common Language Runtime (CLR) che Windows Forms utilizza il modello di apartment a thread singolo. È possibile notare un comportamento imprevisto se non si applica questo attributo al metodo di Main
dell'applicazione Windows Form. Ad esempio, le immagini di sfondo potrebbero non essere visualizzate per i controlli come ListView. Alcuni controlli possono anche richiedere questo attributo per il corretto completamento automatico e il comportamento di 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 vedere la bitmap, ricaricare il controllo utilizzando la finestra di dialogo Scegli elementi della Toolbox. Per altre informazioni, vedere Procedura: Fornire una bitmap della casella degli strumenti per un controllo.
Vedere anche
- Sviluppo di controlli Windows Forms in fase di progettazione
- procedura dettagliata: popolamento automatico della casella degli strumenti con componenti personalizzati
- Procedura: Testare il comportamento di Run-Time di un UserControl
- Procedura dettagliata: debugging di controlli Windows Form personalizzati in fase di progettazione
.NET Desktop feedback