Отобразить пользовательский элемент управления в активной книге
У меня есть проект надстройки Excel VSTO. У меня есть лента с именем "ManageTaskPaneRibbon", а на ленте у меня есть кнопка с названием "toggleButton1", которая открывает пользовательский элемент управления с именем "TaskPaneControl". Когда я запускаю надстройку и нажимаю на кнопку, пользовательская панель правильно отображается в "Book1".
Book1 открывает панель правильно от кнопки переключения ленты
Но когда я нажимаю на "Новая рабочая книга", лента в новой рабочей книге "Book2" открывается с уже нажатой кнопкой переключения, как в "Book1".
Когда я нажимаю кнопку переключения в "Book2", панель в "Book1" исчезает, кнопка переключения в "Book2" теперь не проверяется, а кнопка переключения в "Book1" остается отмеченной.
введите описание изображения здесь
Я основал свой тест на этом прохождении...
В ThisAddIn я удалил экземпляр TaskPaneControl...
private TaskPaneControl taskPaneControl1;
private Microsoft.Office.Tools.CustomTaskPane taskPaneValue;
В ThisAddIn_Startup я добавил TaskPaneControl в поле CustomTaskPanes...
taskPaneControl1 = new TaskPaneControl();
taskPaneValue = this.CustomTaskPanes.Add(taskPaneControl1, "MyCustomTaskPane");
taskPaneValue.VisibleChanged += new EventHandler(taskPaneValue_VisibleChanged);
И в нажатие кнопки переключения я добавил код для отображения панели...
Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
Globals.ThisAddIn.TaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft;
Globals.ThisAddIn.TaskPane.Width = 250;
Я не уверен, нужно ли мне загружать новый экземпляр ленты при открытии нового файла или мне нужно создать новый экземпляр панели. Конечно, я не уверен, как это сделать. Может ли кто-нибудь помочь мне понять это?
Спасибо т
0 ответов
Если бы ваш источник был https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-add-a-custom-task-pane-to-an-application
, тогда:
Имейте в виду, что эквивалент this в C# совпадает с Me в vb.net.
это может быть причиной того, что никакое другое взаимодействие не активируется, кроме первого экземпляра.