Hice un control de usuario en mi proyecto, y después de construir el proyecto, tengo que ponerlo en mi caja de herramientas, y usarlo como un control común. pero no puedo el UserControl
está en el espacio de nombres de mi proyecto, y probé Choose Item
en el menú contextual, pero no encontré la manera de agregarlo.Cómo poner un UserControl en Visual Studio toolbox
Respuesta
Supongo que está utilizando VS2010 (es por eso que ha etiquetado la pregunta como) Tuve problemas para que se agreguen automáticamente a la caja de herramientas como en VS2008/2005. ¡Hay una opción para detener la caja de herramientas automáticamente!
Vaya a Herramientas> Opciones> Windows Forms Designer> General
En la parte inferior de la lista encontrará Herramientas> AutoToolboxPopulate el cual en una nueva instalación por defecto es falso. Establezca su verdadero valor y luego reconstruya su solución.
Ojo antes de que los controles del usuario en su solución se agreguen automáticamente a la caja de herramientas. Es posible que deba volver a cargar la solución también.
Por lo que sé, puede arrastrar & soltar su control de usuario en su proyecto actual a la caja de herramientas. El problema es que cuando eliges un proyecto diferente, el control del usuario desaparece. Por lo tanto, creo que debe crear un proyecto de biblioteca de control por separado:
En su solución, agregue un nuevo proyecto; sin embargo, como plantilla de proyecto, seleccione "Biblioteca de clases". En ESE proyecto, agregue un control de usuario y haga todo lo que necesite hacer. Una vez hecho esto, compilarlo, y usted tendrá un archivo dll (se puede encontrar fácilmente en la carpeta bin/debug de proyectos).
Puede agregar este dll a su caja de herramientas (haga clic derecho en agregar ...) y permanecerá allí en todos los proyectos!
Haga clic derecho en la barra de herramientas y luego haga clic en "Elegir elemento" en el menú contextual. Aparece un diálogo con los componentes registrados. en este cuadro de diálogo, haga clic en "Buscar" para seleccionar su conjunto con el control de usuario que desea usar.
PS. Este conjunto debe registrarse antes.
¿Puedes explicar 'registrado antes'? No creo que sea obligatorio. –
Hay un par de maneras.
en su proyecto original, seleccione Archivo | Exportar plantilla
A continuación, seleccione ItemTemplate y siga el asistente.Mueva su UserControl a una ClassLibrary separada (y arregle los espacios de nombres, etc.).
Agregue una referencia a la biblioteca de clases de Proyectos que lo necesitan. No te molestes con el GAC ni nada, solo el archivo DLL.
No aconsejaría poner un UserControl en la Caja de herramientas normal, pero se puede hacer. Ver la respuesta de @Arseny
Este parece ser el mejor enfoque. El único inconveniente es que no puedes editar el control visualmente (o al menos no encontré cómo). – Sebastian
No importa, agregué la plantilla como elemento y se muestra el diseñador. – Sebastian
Estoy totalmente de acuerdo y también recomendaría encarecidamente no vincular a una DLL si el proyecto que contiene el UserControl está en la misma solución. Y funcionará con una DLL, es decir, el UserControl en el Proyecto de la Biblioteca aparecerá en cualquier proyecto de WinForms que haga referencia a la biblioteca (después de una reconstrucción, por supuesto ;-)). –
El uso de VS 2010:
Digamos que usted tiene un proyecto Windows.Forms. Agregue un UserControl (digamos MyControl) al proyecto y diseñe todo. Ahora quiere agregarlo a su caja de herramientas.
Tan pronto como el proyecto se haya creado con éxito una vez, aparecerá en sus Componentes de Framework. Haga clic con el botón derecho en la Caja de herramientas para obtener el menú contextual, seleccione "Elegir elementos ..." y busque el nombre de su control (MyControl) en la pestaña "Componentes de .NET Framework".
Ventaja sobre el uso de dlls: puede editar los controles en el mismo proyecto que su formulario, y el formulario se compilará con los nuevos controles. Sin embargo, el control solo estará disponible para este proyecto.
Nota: Si el control tiene errores de compilación, resuélvalos antes de pasar a los formularios que lo contienen, o el diseñador tiene un ataque al corazón.
También podría estar disponible para otros proyectos si importa el .exe en la caja de herramientas. – Sebastian
¡Cualquier respuesta que contenga "o el diseñador tiene un ataque al corazón" recibe mi voto! – Joel
me hicieron lo mismo y todo es bueno, pero cuando me cambiaron el código en otro proyecto, crear un archivo DLL, y hacen referencia al archivo DLL, el control personalizado no aparece. –
Encontré que el control de usuario debe tener un constructor sin parámetros o no aparecerá en la lista. al menos eso fue cierto en vs2005.
tuve muchos controles de los usuarios, pero se negó a mostrar en el cuadro de herramientas , a pesar de que reconstruyó la solución y se comprobó en los Elegir elementos ... de diálogo.
Solución:
- De Explorador de soluciones I derecho del Seguido el archivo de control de usuario infractor y seleccionados excluir de Proyecto
- Reconstruir la solución
- Haga clic con el control de usuario y seleccione Incluir en el proyecto (suponiendo que tiene el Mostrar todos los archivos habilitada en el Explorador de soluciones )
Nota esto también requiere que usted tiene la opción deAutoToolboxPopulate habilitado. Como lo sugiere la respuesta @DaveF.
solución alternativa: No estoy seguro de si esto funciona, y no pude probarlo ya que ya resolví mi problema, pero si se toman medidas, la de control de usuario desde el Elegir elementos ... de diálogo, pulse Aceptar , luego lo volvió a abrir y comprobó el control del usuario. Eso también podría funcionar.
El problema con mi diseñador fue el problema de 32 contra 64 bits. Podría agregar el control a la caja de herramientas después de seguir las instrucciones en el artículo Cannot add Controls from 64-bit Assemblies to the Toolbox or Use in Designers Within the Visual Studio IDE de MS KB.
¡La recompilación hizo el truco para mí!
Pregunta básica si usa genéricos en su control de base. En caso afirmativo:
digamos que tenemos el control:
public class MyComboDropDown : ComboDropDownComon<MyType>
{
public MyComboDropDown() { }
}
MyComboDropDown no permitirá que el diseñador para abrir en él y se no se muestra en la caja de herramientas. ¿Por qué? Porque el control base no está ya compilado, cuando se cumple MyComboDropDown. Puede modificar a esto:
public class MyComboDropDown : MyComboDropDownBase
{
public MyComboDropDown() { }
}
public class MyComboDropDownBase : ComboDropDownComon<MyType>
{
}
que después de reconstruir y restablecer caja de herramientas que debería ser capaz de ver en MyComboDropDown diseñador y también en la caja de herramientas
En mi caso, yo no podía ver ninguna de las controles en el proyecto. Sólo cuando hacen clic derecho en la caja de herramientas y seleccionando la opción "Mostrar todos" los vi, pero todavía tenían un impedimento ...
Cambio del tipo de proyecto de aplicación de Windows para ClassLibrary hizo la corrección.
Alternar "Mostrar todo" funcionó para mí, como ya estaba configurado. –
- 1. ¿Cómo reconstruir Visual Studio Toolbox?
- 2. Cómo recuperar el control eliminado de ToolBox ¿En Visual Studio?
- 3. Agregando controles personalizados dll a Visual Studio ToolBox
- 4. Herencia abstracta de UserControl en el diseñador de Visual Studio
- 5. Visual Studio agrega una referencia circular cuando arrastro y coloco un control de usuario desde Toolbox
- 6. ¿Cómo colocar fragmentos de código dentro de la ventana de Visual Studio 2010 Toolbox?
- 7. EnvDTE sustituto en Visual Studio 2012
- 8. ¿Cómo agregar un evento a UserControl en C#?
- 9. Mi UserControl se bloquea Visual Studio Siempre que lo agregue a un formulario
- 10. ¿Cómo depurar un threadpool en Visual Studio?
- 11. ¿Cómo funciona intellisense en Visual Studio?
- 12. Cómo usar un ContextMenu UserControl en WPF?
- 13. InvokeProcess ¿Falta de ToolBox?
- 14. ¿Cómo construyes un Visual Studio como UI?
- 15. Cómo depurar solo un hilo en Visual Studio
- 16. Varias ventanas en Visual Studio
- 17. Firmar un ensamblado en Visual Studio
- 18. ¿Cómo puedo agregar un comando personalizado a Visual Studio?
- 19. C en Visual Studio
- 20. Visual Studio 2012 en comparación con Visual Studio 2010 (delta)
- 21. Cómo agregar elementos XML en la caja de herramientas en Visual Studio 2010 RC
- 22. Boo en Visual Studio?
- 23. #warning en Visual Studio
- 24. LINQPad en Visual Studio
- 25. cómo poner un control extendido WinForms en caja de herramientas
- 26. ¿Cómo abro los enlaces en Visual Studio en mi navegador web y no en Visual Studio?
- 27. cómo actualizar Visual Studio caché de plantillas
- 28. ¿Cómo reiniciar Visual Studio manualmente?
- 29. ¿Cómo saber el tipo de proyecto de Visual Studio desde un proyecto de Visual Studio existente
- 30. ¿Cómo configuro una ruta en Visual Studio?
La palabra clave aquí para mí era "reconstruir" ... no había probado que, D'oh! Hacer eso solo ordenó esto para mí. –
Y tuve que volver a abrir la solución después de la reconstrucción –
En VS2012, ahora han agregado la sugerencia "La solución actual debe volver a abrirse para que esto surta efecto" en el cuadro de diálogo de opciones. –