С#. Дополнение Excel. Невозможно изменить положение плавающей пользовательской панели задач.C#

Место общения программистов C#
Ответить
Anonymous
 С#. Дополнение Excel. Невозможно изменить положение плавающей пользовательской панели задач.

Сообщение Anonymous »

При создании пользовательской панели задач (_CustomTaskPane MSDN) и установке для ее DockPosition плавающего значения я хочу указать свойства Top и Left. из окна появилось. Поскольку COM API Office не предоставляют прямой возможности сделать это, люди советуют изменить значения соответствующих свойств CommandBar:

Код: Выделить всё

var application = (_Application)_nativeTaskPane.Application;
application.CommandBars["Task Pane Title"].Top = top;
application.CommandBars["Task Pane Title"].Left = left;
В приведенном выше коде я предполагаю, что

1) _nativeTaskPane — это мой экземпляр, реализующий _CustomTaskPane (на самом деле это Microsoft .Office.Core.CustomTaskPane)

2) _Application — Microsoft.Office.Interop.Excel._Application

Разумеется, я делаю это после установки Visible = true. Даже подписался на VisibleStateChange панели задач, чтобы быть более уверенным. Однако я получаю COMException с HRESULT E_FAILED.

Дело в том, что я могу читать эти свойства (сверху и слева) при отладке, однако их установка вызывает исключение.< /p>

Похоже, проблема всплывала в интернете как минимум несколько раз:

1) http://www.add-in-express.com/forum/rea ... 1&TID=5595

2) [http://aritrasaha.wordpress .com/2009/05/19/programatically-position-office-2007-floating-custom-task-pane/]

3) [http://www.visualstudiodev.com/visual-s ... 5822.shtml]

Обходной путь — использование Windows API. Однако может ли кто-нибудь объяснить, что может быть не так с использованием подхода CommandBar? Возможно, я смогу что-то «перенастроить», чтобы эти верхние/левые настройки работали без исключений.

Подробнее здесь: https://stackoverflow.com/questions/691 ... -task-pane
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»