我有一个winforms应用程序。主窗体有一些按钮可以在单击时打开其他窗体。
有一个表单我想禁用视觉样式/主题。我也想为其子级禁用视觉样式。可能吗?如果有怎么办?
例如,假设我在主窗体上有三个按钮:
Button1
form1
点击打开Button2
form2
点击打开Button3
form3
点击打开
因此,当我单击时,我Button2
只想禁用其上的视觉样式,但我想保持为表单启用视觉样式:form1
和form3
.
我有一个winforms应用程序。主窗体有一些按钮可以在单击时打开其他窗体。
有一个表单我想禁用视觉样式/主题。我也想为其子级禁用视觉样式。可能吗?如果有怎么办?
例如,假设我在主窗体上有三个按钮:
Button1
form1
点击打开Button2
form2
点击打开Button3
form3
点击打开因此,当我单击时,我Button2
只想禁用其上的视觉样式,但我想保持为表单启用视觉样式:form1
和form3
.
您可以使用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();