2009-09-15 12 views
16

Ho sviluppato un controllo in C#. Tra le altre cose questo controllo può far apparire altri controlli in fase di runtime. Quando includi l'assembly in Visual Studio, viene visualizzato il controllo che ho creato, ma vengono visualizzati anche gli altri controlli (quelli che il mio controllo utilizza). Preferirei non vederli nella toolbox di Visual Studio. C'è un attributo che posso applicare a queste classi per far sì che non vengano visualizzate? Ho trovato l'attributo browsable, ma dice che è per proprietà ed eventi.Come faccio a "nascondere" i controlli che il mio controllo utilizza dalla casella degli strumenti?

risposta

32

Aggiungere l'attributo [ToolboxItem (falso)] alle classi che non si desidera visualizzare nella casella degli strumenti.

+0

Che ha funzionato ora ho bisogno di capire come impostare un'icona. Ho provato ToolboxBitmap, ma non sono riuscito a farlo funzionare ancora. –

+2

ToolboxBitmap è l'attributo corretto. Devi aggiungere un file .bmp al tuo progetto e assicurarti che la sua azione di compilazione sia impostata su Risorsa. Quindi, supponendo che si chiama Example.bmp e nella stessa cartella del vostro controllo, l'attributo ToolboxBitmap sarebbe simile: MyControls namespace { [ToolboxBitmap (typeof (MyControl), "Example.bmp")] pubblico sigillato classe MyControl: Control { } } – Josh

0

Se si dichiara un UserControl come "interno" anziché "pubblico", non verrà visualizzato nella casella degli strumenti quando si fa riferimento all'assieme in un altro progetto.

Aggiornamento: o forse non funziona affatto. Non riesco a far funzionare i miei semplici controlli di prova quando cerco di ospitarne uno in un altro. Fammi sapere se funziona "interno".

+0

Ho verificato che renderlo interno non ha aiutato. –

+0

Questo è strano: renderlo interno * ha * tenuto fuori dalla scatola degli strumenti del mio progetto consumante. Oh beh, ovviamente l'attributo ToolboxItem ha molto più senso. – MusiGenesis

Problemi correlati