c#winform右上隅の閉じるボタンを取り消す実現方法

1297 ワード

1つの方法は、フォームのプロパティパネルでフォームのControlBoxプロパティをfalseに設定するか、フォームのコンストラクション関数に次のように書くことです.
 
  
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;

}