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

Actualización: noviembre 2007

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 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 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 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 Form.ShowDialog crea un nuevo bucle de mensajes de .NET Framework para procesar los mensajes del formulario.

La desventaja de utilizar el método 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 Form.ShowDialog para mostrar el formulario.

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

  • Reemplace todas las llamadas al método Form.Show con llamadas al método Form.ShowDialog en el componente .NET Framework.

Vea también

Tareas

Cómo: Admitir la interoperabilidad COM al mostrar cada formulario Windows Forms en su propio subproceso

Cómo: Admitir la interoperabilidad COM al mostrar formularios Windows Forms en un subproceso compartido

Conceptos

Exponer componentes de .NET Framework en COM

Otros recursos

Aplicaciones de Windows Forms y aplicaciones no administradas