我正在使用add-in-express開發Outlook插件。我在那裏添加了一個adxOlFormsManager。其中包含一個名爲'adxOlFormsCollectionItem1'的Forms集合。我已經將表單類名稱設置爲「FlowOutlook.Plugins.Chat.ChatExplorerPane」。是的,ChatExplorerPane是我的ADXOlForm。將ADXOlExplorerLayout設置爲DockRight
我實現了使用下面的代碼我ADXOlform自定義事件:
private void AddinModule_AddinStartupComplete(object sender, EventArgs e)
{
try
{
var currentChatTypeForm = AddinModule.CurrentInstance.adxOlFormsCollectionItem1.FormInstances(0) as ChatExplorerPane;
currentChatTypeForm.OnChatTypeSelected += currentChatTypeForm_OnChatTypeSelected;
}
catch (Exception ex)
{
Debug.DebugMessage(2, "AddinModule : Error in AddinModule_AddinStartupComplete() : " + ex.Message);
}
}
我的問題是:
如果我探險佈局爲「RightSubpane」這工作得很好。但是,在我將資源管理器佈局更改爲dock right(使用Properties窗口)後,adxOlFormsCollectionItem1.FormInstanceCount爲0.(這意味着「currentChatTypeForm」將爲null)。
我所應該做的事:
private void ChangeExplorerLayout(AddinExpress.OL.ADXOlForm form)
{
if (form == null) return;
form.XXX = AddinExpress.OL.ADXOlExplorerLayout.DockRight;
}
我上面的方法,通過代碼來改變資源管理器的佈局中寫道。我希望我可以在初始化我的自定義方法後,在AddinModule_AddinStartupComplete內安全地調用它。但我需要知道代替'XXX'的代碼才能完成該方法並嘗試。
請指教我根據我的要求更改資源管理器佈局作爲碼頭權利。
Kushan Randima。
謝謝。我讀了書中提到的部分。如果我使用ADX事件,我可能會失去在addinModule中初始化自定義事件的機會。任何解決方案? –
請參閱 - http://stackoverflow.com/documentation/outlook-addin/commit –