2011-07-04 10 views
3

我有一个用VS2010 VSTO库构建的excel 2007加载项。 当我创建外接的一个新对象,我也创建一个Excel左侧任务窗格中,用下面的代码:有没有办法来控制左边的任务窗格的宽度持有一个加载项?

Microsoft.Office.Tools.CustomTaskPane taskPaneAddIn; 
MyAddIn addIn; 

addIn = new MyAddIn(this.Application); 
taskPaneAddIn = this.CustomTaskPanes.Add(addIn, "My AddIn"); 
taskPaneAddIn.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft; 
taskPaneAddIn.Width = addIn.Size.Width + 5; 

加载项是有自己的尺寸的Windows用户控制。

上面的代码似乎不工作,因为taskPaneAddIn宽度始终固定在Excel中。用户始终必须手动展开任务窗格才能看到控件的整个宽度。

是否有任何可编程的方式来设置任务窗格宽度?

回答

14

我认为问题的根源在于,当您将控件添加到CustomTaskPanes时,其宽度将设置为零(我认为它与控件获得对接的事实有关)。要解决您的问题,您可以执行以下操作,并在添加之前检索控件的宽度:

var control = new TaskPaneControl(); 
var width = control.Width; 
var taskPane = CustomTaskPanes.Add(control, "Wide"); 
taskPane.Width = width; 
taskPane.Visible = true; 
+0

谢谢,这就是它!你不会相信我试图解决这个问题有多少时间......再次感谢。 – NirMH

+0

只是辉煌! – Neophile

相关问题