Tengo un formulario de Windows .NET 3.5 que me gustaría incluir en otro formulario. ¿Hay una forma rápida de convertir esa forma en un control?.NET: Cómo convertir un formulario de Windows a un control de Windows
Gracias
Tengo un formulario de Windows .NET 3.5 que me gustaría incluir en otro formulario. ¿Hay una forma rápida de convertir esa forma en un control?.NET: Cómo convertir un formulario de Windows a un control de Windows
Gracias
Cambiar la forma de heredar de control de usuario en lugar del Formulario, a continuación, fijar cualquier errores de compilación.
Hay también una manera de incrustar un formulario en un control: Aquí está el código en VB:
Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form)
If ctl IsNot Nothing AndAlso frm IsNot Nothing Then
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
frm.Visible = True
ctl.Controls.Add(frm)
End If
End Sub
Creo que ha adquirido este código de otro mensaje el SO, pero no puedo recordar dónde, por lo lo siento si este es su fragmento de código!
No dice que deba hacer esto ahora, pero en el futuro puede echar un vistazo al MEF. Es un marco para (entre otras cosas) construir aplicaciones compuestas que parece que podría ser lo que estás tratando de lograr.
Utilicé la solución de @Neil Barnwell, con una adición. he editado manualmente el archivo .vbprog y cambiaron "subtipos" de la forma de "control de usuario":
<SubType>UserControl</SubType>
Esto permite que el icono en el Explorador de proyectos para mostrar como un control de usuario, en lugar de una forma.
Acabo de encontrar esta respuesta al abordar este mismo problema yo mismo. Impresionante qué fácil es eso. –
¿Cómo haría esto en VB.NET? El formulario simplemente se declara como 'Public Class TimeSheetGrid', sin explícita' Inherits'. – ProfK
En Visual Studio 2012 (al menos) o con las formas relativamente simples que he probado, hacer esto hace que el código sea utilizable pero no puede abrir el control en el diseñador VS. No hay errores, pero cuando abre el diseñador, simplemente le muestra una lista de todos los elementos de control, similar a cómo lo hace para elementos de diálogo de archivo/etc. pero no ves el diseño de control. Si alguien sabe cómo arreglar eso, ¡cuéntalo! –