有没有办法控制包含加载项的左任务窗格的宽度?

时间:2011-07-04 06:31:07

标签: visual-studio-2010 excel c#-4.0 vsto

我有一个使用VS2010 VSTO库构建的excel 2007加载项。 当我创建一个新的加载项对象时,我还使用以下代码创建一个excel left任务窗格:

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;

addIn是一个具有自己尺寸的Windows用户控件。

上面的代码似乎不起作用,因为taskPaneAddIn宽度始终固定在excel上。用户始终必须手动展开任务窗格以查看控件的整个宽度。

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

1 个答案:

答案 0 :(得分:14)

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

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