Как форсировать визуальные стили при использовании.NET форм Interop из VB6
Я создал библиотеку классов VB.NET, которая предоставляет некоторые подпрограммы COM Interop. Они в свою очередь показывают различные формы, которые содержатся в библиотеке классов. Когда формы отображаются из VB6, они не наследуют визуальные стили операционной системы и действуют как элементы управления VB6.
Я полагаю, что это, вероятно, из-за замысла, но есть ли какой-нибудь способ принудительно / контролировать визуальные стили вручную в сборке.NET? Я мог бы представить, что если я использую манифест в своем приложении VB6, то все будет использовать правильный стиль, но я хотел бы иметь возможность контролировать это сам, если это возможно, потому что мы используем сторонние элементы управления в VB6, которые не требуют манифеста.
1 ответ
Я думаю, что манифест - это способ сделать это, но сначала вы всегда можете попробовать это:
Добавьте ссылку на Windows.Forms и вызовите эти два метода в вашей точке входа сборки:
System.Windows.Forms.Application.EnableVisualStyles()
System.Windows.Forms.Application.DoEvents()
Примечание: мы вызываем DoEvents(), потому что была ошибка в фреймворке, которая вызывала ошибки и плохо прорисованные стили. Я считаю, что это было исправлено с тех пор, но на всякий случай.