2010-06-08 15 views
8

Soy nuevo en la programación de VSTO. He creado un complemento básico para Outlook 2007 que supervisa una carpeta que contiene archivos de texto XML que abre y luego los envía como un correo electrónico, luego los elimina. esto todo funciona bienPuede abrir un formulario o una ventana en un complemento de Outlook (VSTO)

Quiero que el usuario pueda configurar ciertos ajustes para la forma en que funcionará el complemento/programa, como la carpeta que supervisará y otras cosas. La forma lógica de hacerlo es crear un elemento de menú en el complemento (que también he hecho) que abre un formulario de Windows (o ventana XAML) que les permite ingresar los parámetros.

En mi complemento agregué un nuevo elemento Windows Form, que funcionó, y el diseñador abrió. Sin embargo, en mi código de complemento no puedo abrir el formulario. El método Show() normalmente asociado con objetos de formulario no está disponible.

¿Es esto simplemente algo que no puede hacer, o simplemente lo estoy haciendo de la manera incorrecta?

He leído acerca de las regiones de formulario de Outlook, pero parecían estar asociadas a elementos de Outlook como un nuevo correo electrónico, tarea, cita, etc. ... no parece haber una manera de crear una región de formulario que se pueda abrir en la ventana principal de Outlook.

Idealmente, me gustaría ir con mi método original de abrir una nueva ventana de un elemento de menú, pero si esto no es posible, me gustaría escuchar otras soluciones.

Gracias, Will.

+0

Puede abrir ventanas muy bien. ¿Qué quieres decir con "no disponible"? ¿Obtiene un error al intentar abrirlo o qué? Si obtiene un error (tiempo de ejecución o tiempo de compilación), publique el mensaje de error. –

Respuesta

7

Para una forma normal, parece que no acaba de agregar System.Windows.Forms como referencia, crear el objeto y mostrarlo, por ejemplo.

Form myFrm = new frmFlightList(); 
myFrm.Show(); 

Esto debería funcionar en un complemento VSTO, como lo hace en cualquier otra forma. El objeto CMSConnectorControl al que se refiere es una distracción para los demás para el caso general de solo querer mostrar un formulario.

+0

este código hace esto: este control activex no puede crear instancias porque el hilo actual no es un apartamento de subproceso único. – mustafatorun

0

cuenta de esto, Después de construir mi forma sólo tenía que añadir estas líneas

CMSConnectorControl formMain = new CMSConnectorControl(); 
formMain.ShowDialog(); 

a la función ThisAddIn_Startup().

Cuestiones relacionadas