2013-03-20 105 views
5

最近我寫了一個outlook加載項,其中有一個用於額外功能區的ribbon.xml文件,上下文菜單等。我還在窗口右側添加了一個額外的面板。如何在Visio 2013加載項中添加自定義面板?

現在我已經開始了一些關於如何爲Visio創建加載項的研究。 ribbon.xml實際上是一樣的,所以這根本不是問題。但是,我似乎無法找到任何方式來打開Visio文檔時添加自定義面板。

到目前爲止,我有這個在Visio知道,如果一個文件被打開/創建/修改:

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    MessageBox.Show("Visio Add-In V1"); 
    Globals.ThisAddIn.Application.DocumentChanged += new Visio.EApplication_DocumentChangedEventHandler(docChanged); 
    Globals.ThisAddIn.Application.DocumentOpened += new Visio.EApplication_DocumentOpenedEventHandler(docChanged); 
    Globals.ThisAddIn.Application.DocumentCreated += new Visio.EApplication_DocumentCreatedEventHandler(docChanged); 
} 

private void docChanged(Visio.Document doc) 
{ 
    MessageBox.Show("Document loaded"); 
} 

在Outlook我這樣做是爲了添加自定義面板(簡體):

MyPanel ctrl = new MyPanel(); 
Microsoft.Office.Tools.CustomTaskPane ctp = Globals.ThisAddIn.CustomTaskPanes.Add(ctrl, title); 
ctp.Visible = true; 
ctp.Width = 300; 
ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight; 

現在我將如何在Visio 2013加載項中執行此操作?

編輯:

很不幸,這讓我覺得這是不可能的: http://msdn.microsoft.com/en-us/library/vstudio/bf08984t.aspx

EDIT2:

以下的答案應該工作:Are Task Panes Available in Visio VSTO?

不過,我可以」似乎找到了一種方法在我的主窗口上獲得停靠面板。這裏是我的嘗試:

Globals.ThisAddIn.Application.Windows.Add("testpanel", VisWindowStates.visWSDockedLeft, VisWinTypes.visStencilAddon, null, null, null, 300); 

,好像它是一個新的繪圖這增加了窗口......

EDIT3:

Visio中拋出這個COM異常說我有一個無效的窗口類型。

Application.Windows.Add("testpanel", VisWindowStates.visWSDockedRight, VisWinTypes.visAnchorBarAddon, null, null, 300); 

回答

2

您可以使用錨杆在Visio,沒有任務窗格 如果你下載的Visio SDK,並期待在代碼樣本庫,你會發現在用戶界面錨杆使用。

爲了完整起見,你不妨審查這個MSDN文章Windows.Add方法(Visio中) - http://msdn.microsoft.com/en-us/library/office/ff767674.aspx

+0

如果我從我的'最後的代碼示例嘗試代碼visAnchorBarAddon'的Visio拋出我一個COM異常話說窗口類型無效。除了'visStencilAddon'之外,它可以做到這一點。我將編輯我的帖子以顯示我所嘗試的內容 – 2013-03-26 07:17:18

+0

我已經擁有Visio SDK,但顯然忽略了代碼示例,感謝您的幫助 – 2013-03-26 07:39:17

相關問題