我想知道是否有一种方法可以在禁用控制框,最小化框和最大化框的同时在自定义对话框的左上角显示图标?单击图标(大约,关闭,移动等)时,我不需要任何功能.我只想要更好的外观.解决方法:没有控制箱=没有图标…禁用Cont...
![](https://oss.womengda.net/imgfile/2310/1ER2Lab110-31337.jpg)
我想知道是否有一种方法可以在禁用控制框,最小化框和最大化框的同时在自定义对话框的左上角显示图标?单击图标(大约,关闭,移动等)时,我不需要任何功能.我只想要更好的外观.
解决方法:
没有控制箱=>没有图标…
禁用ControlBox后,窗体windowstyle WS_SYSMENU标志(以某种方式以一种遥远的方式)将被删除,因此Windows无法显示图标.实际上,我尚未找到关于为什么右上角图标继续存在而又没有WS_SYSMENU的最终解释……但是找到了另一个更适合您需求的解决方案)
private const int GWL_STYLE = -16;
private const int WS_CLIPSIBLINGS = 1 << 26;
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "SetWindowLong")]
public static extern IntPtr SetWindowLongPtr32(HandleRef hWnd, int nIndex, HandleRef dwNewLong);
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "GetWindowLong")]
public static extern IntPtr GetWindowLong32(HandleRef hWnd, int nIndex);
protected override void onl oad(EventArgs e) {
int style = (int)((long)GetWindowLong32(new HandleRef(this, this.Handle), GWL_STYLE));
SetWindowLongPtr32(new HandleRef(this, this.Handle), GWL_STYLE, new HandleRef(null, (IntPtr)(style & ~WS_CLIPSIBLINGS)));
base.OnLoad(e);
}
沃梦达教程
本文标题为:c#-不带控制框的Windows窗体对话框图标
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
猜你喜欢
- c#打开py文件的方法 2023-01-06
- C#集合本质之队列的用法详解 2023-06-28
- C#实现批量下载图片到本地示例代码 2023-01-06
- C#流程控制详解 2023-06-21
- WPF自定义控件和样式之自定义按钮(Button) 2022-12-11
- c# delegate和event的使用说明 2023-04-10
- Unity Shader实现水波纹效果 2023-02-16
- .net core 部署到Centos 2023-09-26
- 详解WPF的InkCanvas选择模式 2023-04-10
- WPF实现2048小游戏 2022-12-06