モーダルダイアログがあり、閉じる(X)ボタンを非表示にする必要がありますがControlBox = false
、最小化ボタンと最大化ボタンを保持する必要があるため、を使用できません
。
[閉じる]ボタンだけを非表示にする必要がありますが、それを行う方法はありますか?
どうもありがとう!
更新:私はそれを無効にする許可を持っていました、それはより簡単です:)ありがとうございます!
モーダルダイアログがあり、閉じる(X)ボタンを非表示にする必要がありますがControlBox = false
、最小化ボタンと最大化ボタンを保持する必要があるため、を使用できません
。
[閉じる]ボタンだけを非表示にする必要がありますが、それを行う方法はありますか?
どうもありがとう!
更新:私はそれを無効にする許可を持っていました、それはより簡単です:)ありがとうございます!
回答:
非表示にすることはできませんが、フォームの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;
}
}
設定によりフォーム上の閉じるボタンを非表示にすることができます this.ControlBox=false;
システムメニュー全体を削除することで非表示にできます。
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
もちろん、そうすると最小化ボタンと最大化ボタンが削除されます。
システムメニューはそのままにして閉じる項目を削除すると、閉じるボタンは残りますが無効になります。
最後の方法は、非クライアント領域を自分でペイントすることです。それを正しく行うのはかなり難しいです。
ControlBox
falseに設定するのと同じです。また、それは要件に失敗します:最小化ボタンと最大化ボタンを保持する必要がある
hide close button c#
、2番目の結果がここにあります!=)