10 votes

Pouvez-vous ouvrir un formulaire ou une fenêtre dans un complément Outlook (VSTO)

Je suis nouveau dans la programmation VSTO. J'ai créé un complément de base pour Outlook 2007 qui surveille un dossier contenant des fichiers texte XML qu'il ouvre, envoie par email, puis supprime. Tout cela fonctionne bien.

Je veux que l'utilisateur puisse configurer certains paramètres pour la manière dont le complément/programme va fonctionner, comme le dossier qu'il va surveiller, et d'autres choses. La manière logique de faire cela est de créer un élément de menu dans le complément (ce que j'ai également fait) qui ouvre un formulaire Windows (ou une fenêtre XAML) leur permettant de saisir les paramètres.

Dans mon complément, j'ai ajouté un nouvel objet Form Windows, qui a fonctionné, et le concepteur s'est ouvert. Cependant, dans mon code de complément, je ne peux pas ouvrir le formulaire. La méthode `Show()` normalement associée aux objets de formulaire n'est pas disponible.

Est-ce simplement quelque chose que vous ne pouvez pas faire, ou est-ce que je le fais simplement de la mauvaise façon?

J'ai lu des informations sur les régions de formulaire Outlook, mais celles-ci semblaient être attachées aux éléments d'Outlook tels qu'un nouvel email, une tâche, un rendez-vous, etc. Il ne semble pas y avoir de moyen de créer une région de formulaire qui peut être ouverte dans la fenêtre principale d'Outlook.

Idéalement, je voudrais continuer avec ma méthode initiale d'ouvrir une nouvelle fenêtre à partir d'un élément de menu, mais si cela n'est pas possible, j'aimerais entendre d'autres solutions.

Merci, Will.

7voto

Jennifer Wood Points 1

Pour un formulaire normal, il semble que vous n'ayez pas simplement ajouté System.Windows.Forms en tant que référence, créez l'objet puis affichez-le par exemple.

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

Cela devrait fonctionner dans un complément VSTO, comme dans n'importe quel autre formulaire. L'objet CMSConnectorControl auquel vous faites référence est une distraction pour les autres cas où l'on veut simplement afficher un formulaire.

0voto

dontpanic Points 59

Je l'ai compris, après avoir construit mon formulaire, il me suffisait d'ajouter ces lignes

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

dans la fonction ThisAddin_Startup().

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X