Для приложений WinForms, вызывающих FileDialog на Win10, контекстное меню пусто при использовании NoneEnabled для Application.VisualStyleState - PullRequest
1 голос
/ 25 января 2020

У меня есть проблема с проектом WinForms, использующим формы со сложными элементами управления.
С определенной степенью сложности (например, количество элементов управления) WinForms может стать очень медленным, это я знаю.
Таким образом, чтобы получить разумное отображение Производительность, Application.VisualStyleState отключена:
Application.VisualStyleState = System.Windows.Forms.VisualStyles.VisualStyleState.NoneEnabled;

Использование более быстрой "Windows classi c theme" делает производительность элементов управления WinForms приемлемой (к сожалению, обычно желательный порт WPF не находится в области видимости ).

Теперь в системах Win10 (без проблем в Win7) элементы управления WinForms FileDialog, вызываемые приложением, отображают «пустое» контекстное меню для элементов, щелкаемых правой кнопкой мыши:
enter image description here

Кстати, со «старым» стилем Win7 у меня все в порядке. Меня беспокоит только пустое контекстное меню.

Попытки альтернатив с использованием WPF FileDialog или WindowsAPICodePack FileDialog выдают оба эти исключения:
" Создание экземпляра компонента COM с CLSID {DC1C5A9 C -E88A-4DDE-A5A1-60F82A20AEF7} из IClassFactory не удалось из-за следующей ошибки: 80040111 ClassFactory не может предоставить запрошенный класс (Исключение из HRESULT: 0x80040111 (CLASS_E_CLASSLE)). "

Есть предложения, как вернуть записи контекстного меню для моего сценария с помощью WinForms FileDialog на Win10?
Или как заставить работать одну из альтернатив (я знаю, что все они вызывают одинаково) родные функции WIN32)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...