从VB6使用.NET表单Interop时如何强制视觉样式

时间:2011-01-04 13:35:14

标签: vb.net vb6 com-interop manifest vb6-migration

我创建了一个VB.NET类库,它公开了一些COM Interop子例程。这些反过来显示了类库中包含的各种形式。当表单从VB6显示时,它们不会继承操作系统的视觉样式,并且像VB6控件一样。

我认为这可能是设计的,但是有没有办法在.NET程序集中手动强制/控制视觉样式?我想如果我在我的VB6应用程序中使用清单,那么一切都将使用正确的样式,但我希望能够自己控制它,如果可能的话,因为我们在VB6中使用不需要清单的第三方控件。 / p>

1 个答案:

答案 0 :(得分:4)

我认为manifest是做到这一点的方法,但首先,你可以尝试这样做:

添加对Windows.Forms的引用,并在程序集入口点调用这两个方法:

    System.Windows.Forms.Application.EnableVisualStyles()
    System.Windows.Forms.Application.DoEvents()

注意:我们调用DoEvents(),因为存在导致错误和错误绘制样式的框架错误。我相信这已经解决,但以防万一。