2010-06-08 72 views
8

我是VSTO编程的新手。我为Outlook 2007创建了一个基本插件,用于监视包含打开的XML文本文件的文件夹,然后将它们作为电子邮件发送,然后删除它们。这一切工作正常。你可以在Outlook Addin(VSTO)中打开窗体或窗口吗

我希望用户能够配置插件/程序将运行的方式的某些设置,例如它将监视的文件夹等。这样做的逻辑方法是在外挂程序中创建一个菜单项(我也已经完成),它打开一个窗口窗体(或XAML窗口),允许它们输入参数。

在我的插件中,我添加了一个新项目Windows窗体,它工作,并打开设计器。但是,在我的插件代码中,我无法打开表单。通常与表单对象关联的Show()方法不可用。

这是你做不到的事情,还是我做错了?

我已阅读关于Outlook表单区域,但这些似乎附加到Outlook项目,如新的电子邮件,任务,约会等......似乎没有办法创建可打开的表单区域在Outlook的主窗口中。

理想情况下,我想用我的原始方法从菜单项打开一个新窗口,但如果这不可能,我希望听到其他解决方案。

谢谢, 请问。

+0

你可以打开窗户就好了。你的意思是“不可用”?试图打开它时会出错吗?如果您遇到错误(运行时或编译时),请发布错误消息。 – 2010-06-08 01:25:23

回答

7

对于一个正常的窗体,听起来好像你不只是添加System.Windows.Forms作为参照, 创建该对象然后显示它,例如。

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

这应该在VSTO插件中工作,就像它在任何其他形式中一样。您引用的CMSConnectorControl对象只是想要显示表单的一般情况而分散给其他人。

+0

这段代码会导致这种情况:此activex控件不能实例化,因为当前线程不是单线程单元。 – mustafatorun 2017-03-24 12:25:13

0

想通了这一点,我建我的表格后我不得不添加这些行

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

到ThisAddin_Startup()函数。

相关问题