Windows窗体:如何隐藏closures(x)button?
我有一个模式对话框,需要隐藏closures(X)button,但我不能使用ControlBox = false
,因为我需要保持最小化和最大化button。
我需要隐藏只是closuresbutton,有没有办法做到这一点?
非常感谢!
更新:我有权限禁用它,这是更简单:)谢谢大家!
您不能隐藏它,但可以通过覆盖窗体的CreateParams属性来禁用它。
private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParams { get { CreateParams myCp = base.CreateParams; myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ; return myCp; } }
资料来源: http : //www.codeproject.com/KB/cs/DisableClose.aspx
我们可以通过设置this.ControlBox=false;
隐藏this.ControlBox=false;
上的closuresbuttonthis.ControlBox=false;
那么,你可以通过删除整个系统菜单来隐藏它:
private const int WS_SYSMENU = 0x80000; protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style &= ~WS_SYSMENU; return cp; } }
当然,这样做会删除最小化和最大化button。
如果保留系统菜单但删除了closures项目,则closuresbutton保持不变,但是被禁用。
最后的select是自己绘制非客户区域。 这很难得到正确的。
如果你真的想隐藏它,如“不可见”,那么你可能需要创build一个无边框的forms,并自己绘制标题组件。 VisualStyles库有可用的Windows元素。 您还必须添加重新调整表单或通过抓取标题栏来移动表单的function。 更不用说angular落里的系统菜单了。
在大多数情况下,很难certificate“closures”button不可用,特别是当你想要一个最小化function的模式forms。 最小化模式forms确实没有意义。
那么你可以隐藏closuresbutton,通过更改FormBorderStyle从属性部分或编程方式在构造函数中使用:
public Form1() { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.None; }
那么你创build一个菜单条项目来退出应用程序。
干杯
在表单的属性中设置“Control Box”= False,但是它会隐藏Minimized和Maximize。