2016-09-24 9 views
1

У меня проблема с одной CustomTaskPane в нескольких документах Excel 2016. Я создаю и показываю панель задач с помощью моего пользовательского элемента управления WinForm.Панель задач Excel 2016

Dim cll As cMyControl = New cMyControl 

Private Sub ThisAddIn_Startup() Handles Me.Startup 
    CustomTaskPanes.Add(cll, "Panel") 
End Sub 

Эта панель, которую я вижу во всей книге.

Private Sub Application_WorkbookActivate(Wb As Microsoft.Office.Interop.Excel.Workbook) Handles Application.WorkbookActivate 
    CustomTaskPanes.RemoveAt(0) 
    CustomTaskPanes.Add(cll, "Panel") 
End Sub 

Проблема в том, что панель создана, но пуста. Есть ли способ передачи пользовательского контроля между CustomTaskPanels? Или как прикрепить созданную панель к другому окну Excel? Потому что я не хочу создавать новый объект cll для каждой активации книги.

ответ

0

Excel 2016 - это SDI, а затем вам необходимо сохранить ссылку каждой панели задач. Для идентификации окна Excel вам необходимо использовать Globals.ThisAddIn.Application.Hwnd.

Смотрите здесь для решения: https://stackoverflow.com/a/24732000/3205529

+0

Если я правильно понимаю, это создать уникальную настраиваемую область задач для каждого окна (с уникальным новым управлением пользователем). Но мне нужно что-то вроде новой панели задач с текущим пользовательским элементом управления (все пользовательские изменения в пользовательском управлении будут поддерживаться). – milos

Смежные вопросы