仅为单个表单禁用/关闭视觉样式/主题

时间:2017-04-03 20:11:03

标签: c# winforms visual-styles

我有一个winforms应用程序。主窗体有一些按钮,可以在点击时打开其他窗体。

我想要禁用视觉样式/主题的表单。此外,我想为其孩子禁用视觉样式。可能吗?如果是这样的话?

例如,假设我在主窗体上有三个按钮:

  • Button1点击
  • 打开form1
  • Button2点击
  • 打开form2
  • Button3点击
  • 打开form3

因此,当我点击Button2时,我只想禁用其中的视觉样式,但我希望为表单启用视觉样式:form1form3

1 个答案:

答案 0 :(得分:0)

您可以使用PInvoke SetWindowTheme执行此操作:

[DllImport("uxtheme.dll")]
private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);

然后例如在button2事件处理程序中:

var form2 = new Form2();
SetWindowTheme(form2.Handle, "", "");
form2.Show();