2010-06-08 379 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()函數。