Вот мой сценарий:
- У меня есть старый проект Excel с макросами, который я импортировал в проект vsto.
- Я разработал пользовательскую ленту (
startFromScratch = true
), чтобы она выглядела как приложение диктатора. - Я все еще хочу использовать существующий код макроса, поскольку для его перевода потребуется слишком много временивесь код vba в коде c #
- У меня есть класс, помеченный атрибутом
[ComVisible(true)]
, чтобы я мог вызывать методы vsto из кода vba.
Проблема заключается в том,что я не могу скрыть вкладки, я не могу заставить ленту обновляться.Я могу изменить состояние других элементов управления (например, установить проверенное состояние для CheckBox), но не могу скрыть или отключить свои пользовательские вкладки.
Я пытался PerformLayout()
, PerformDynamicLayout()
на ленте, ribbon.RibbonUI.Invalidate()
, но ничего не работает, вкладка никогда не меняет состояние, хотя в коде я установил ее свойство visible на false
.
Что мне нужно сделать, чтобы обновить ленту во время выполнения?
Редактировать:
Я только что попробовал то же самое, экспортировав ленту в xml, и метод Invalidate()
работает как положено.Есть ли способ сделать это для ленты, разработанной с помощью визуального редактора?