我有一个模态对话框,需要隐藏关闭(X)按钮,但我无法使用
ControlBox = false
,因为我需要保持最小化和最大化按钮.
我需要隐藏关闭按钮,有没有办法做到这一点?
非常感谢!
更新:我有权禁用它,这更简单:)谢谢大家!
小智 151
我们可以通过设置隐藏表格上的关闭按钮 this.ControlBox=false;
Dan*_*ite 137
您无法隐藏它,但可以通过覆盖表单的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;
}
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.codeproject.com/KB/cs/DisableClose.aspx
Dav*_*nan 24
好吧,您可以通过删除整个系统菜单来隐藏它:
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这样做会删除最小化和最大化按钮.
如果保留系统菜单但删除关闭项目,则关闭按钮仍然存在但被禁用.
最后的选择是自己绘制非客户区域.这很难做到.
Ram*_*rja 17
你可以使用隐藏关闭框
this.ControlBox = false;
Run Code Online (Sandbox Code Playgroud)
并且不要忘记添加空格this.Text = " "
以使其像这样
如果你真的想隐藏它,就像在"不可见"中一样,那么你可能需要创建一个无边框表单并自己绘制标题组件.VisualStyles库具有Windows Elements可用.您还必须重新添加重新调整表单大小或通过抓取标题栏来移动表单的功能.更不用说角落里的系统菜单了.
在大多数情况下,很难证明"关闭"按钮不可用,尤其是当您需要具有最小化功能的模态形式时.最小化模态形式真的没有意义.
归档时间: |
|
查看次数: |
218296 次 |
最近记录: |