2009-09-15 12 views
16

Desarrollé un control en C#. Entre otras cosas, este control puede mostrar otros controles en tiempo de ejecución. Cuando incluye el ensamblado en Visual Studio, aparece el control que creé, pero los otros controles (los que usa mi control) aparecen también. Preferiría que no aparecieran en la caja de herramientas en Visual Studio. ¿Existe un Atributo que pueda aplicar a estas clases para que no aparezcan? Encontré el atributo navegable, pero dice que es para propiedades y eventos.¿Cómo "escondo" los controles que usa mi control desde la caja de herramientas?

Respuesta

32

Agregue el atributo [ToolboxItem (false)] a las clases que no desea mostrar en la caja de herramientas.

+0

Eso funcionó ahora. Necesito descubrir cómo configurar un ícono. Intenté ToolboxBitmap, pero aún no lo logré. –

+2

ToolboxBitmap es el atributo correcto. Necesita agregar un archivo .bmp a su proyecto y asegurarse de que su acción de compilación esté configurada como Recurso. Entonces, asumiendo que se llama Example.bmp y en la misma carpeta que su control, su atributo ToolboxBitmap sería algo como: MyControls de espacio de nombres { [ToolboxBitmap (typeof (MyControl), "Example.bmp")] pública sellada clase MyControl: Control { } } – Josh

0

Si declara un UserControl como "interno" en lugar de "público", no se mostrará en la caja de herramientas cuando haga referencia al ensamblado en otro proyecto.

Actualización: o tal vez eso no funciona en absoluto. No puedo hacer que mis controles de prueba simples funcionen correctamente cuando trato de alojar uno en otro. Avíseme si funciona "interno".

+0

He verificado que hacerlo interno no ayudó. –

+0

Eso es raro, por lo que es interno * lo hizo * mantenerlo fuera de la caja de herramientas de mi proyecto consumidor. Oh, bueno, obviamente el atributo ToolboxItem tiene mucho más sentido. – MusiGenesis

Cuestiones relacionadas