c#winform右上隅の閉じるボタンを取り消す実現方法
1297 ワード
1つの方法は、フォームのプロパティパネルでフォームのControlBoxプロパティをfalseに設定するか、フォームのコンストラクション関数に次のように書くことです.
しかし、このようにすると、最小化ボタンと最大化ボタンとともに削除されます.したがって、閉じるボタンだけが機能しないようにして、最小化、最大化を維持したい場合は、フォームのCreateParamsメソッドを書き直します.
または左上隅のクローズイベントの実行をキャンセルします.
public Form1()
{
InitializeComponent();
this.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;
}
}
または左上隅のクローズイベントの実行をキャンセルします.
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
}
// OnClosing
protected override void OnClosing(CancelEventArgs e)
{
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
e.Cancel = true;
}