Esta documentación está archivada y no tiene mantenimiento.

Cómo: Admitir la interoperabilidad COM al mostrar un formulario Windows Forms con el método ShowDialog

Puede resolver los problemas de interoperabilidad del Modelo de objetos componentes (COM) mostrando el formulario Windows Forms en un bucle de mensaje de .NET Framework, que se crea utilizando el método System.Windows.Forms.Application.Run.

Para que el formulario funcione correctamente desde una aplicación cliente COM, debe ejecutarlo en un bucle de mensajes de formularios Windows Forms. Para ello, utilice uno de los métodos siguientes:

Procedimiento

La utilización del método System.Windows.Forms.Form.ShowDialog puede facilitar la presentación de un formulario en un bucle de mensajes .NET Framework porque, de todos los métodos, es el que necesita menos código para realizar la implementación.

El método System.Windows.Forms.Form.ShowDialog suspende el bucle de mensajes de la aplicación no administrada y muestra el formulario como un cuadro de diálogo. Como se ha suspendido el bucle de mensajes de la aplicación host, el método System.Windows.Forms.Form.ShowDialog crea un nuevo bucle de mensajes de .NET Framework para procesar los mensajes del formulario.

La desventaja de utilizar el método System.Windows.Forms.Form.ShowDialog es que el formulario se abre como un cuadro de diálogo modal. Este comportamiento bloquea cualquier interfaz de usuario en la aplicación que realiza la llamada mientras se abre el formulario Windows Forms. Cuando el usuario sale del formulario, el bucle de mensajes de .NET Framework se cierra y el bucle de mensajes de la aplicación anterior comienza a ejecutarse de nuevo.

Puede crear una biblioteca de clases en los formularios Windows Forms con un método para mostrar el formulario, y luego generar la biblioteca de clases para la interoperabilidad COM. Puede utilizar este archivo DLL desde Visual Basic 6.0 o Microsoft Foundation Classes (MFC), y desde cualquiera de estos entornos en los que se pueda llamar al método System.Windows.Forms.Form.ShowDialog para mostrar el formulario.

Para admitir la interoperabilidad COM para mostrar un formulario Windows con el método ShowDialog

Vea también

Mostrar: