Есть ли способ контролировать ширину левой панели задач, содержащей надстройку?

У меня есть надстройка Excel 2007, построенная с библиотекой VS2010 VSTO. когда я создаю новый объект надстройки, я также создаю левую панель задач 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. пользователю всегда приходится вручную расширять панель задач, чтобы увидеть всю ширину элемента управления.

Есть ли программируемый способ установить ширину панели задач?


person NirMH    schedule 04.07.2011    source источник


Ответы (1)


Я думаю, что источником вашей проблемы является то, что когда вы добавляете элемент управления в CustomTaskPanes, его ширина устанавливается равной нулю (я думаю, это связано с тем, что элемент управления закрепляется). Чтобы решить вашу проблему, вы можете сделать следующее и получить ширину вашего элемента управления до его добавления:

var control = new TaskPaneControl();
var width = control.Width;
var taskPane = CustomTaskPanes.Add(control, "Wide");
taskPane.Width = width;
taskPane.Visible = true;
person Mathias    schedule 05.07.2011
comment
спасибо, это было! вы не поверите, сколько времени я пытался это понять... еще раз спасибо. - person NirMH; 05.07.2011