フォーム右上の閉じるボタンを無効にする
- C#
- VB.NET
スポンサーリンク
通常のフォームには右上に閉じるボタン [X] があります。技術系の掲示板を巡回していると、どうやら ControlBox のボタン (最大化、最小化ボタンなど) はそのままに、この閉じるボタンのみを無効にしたい場合があるようです。この望みを適える方法のひとつとして、Control のウィンドウ クラス (WNDCLASS) を作成する時に Style に CS_NOCLOSE を追加するというものがあります。.NET の場合ですと System.Windows.Forms.Form クラスの CreateParam プロパティをオーバーライドし、System.Windows.Forms.CreateParams の ClassStyle プロパティに SC_NOCLOSE を加えることで実現できます。
他にも閉じるボタンを無効にする方法はありますが、こちらの方法ですと「無効」であることが明示でき、[Alt] + [F4] キーによる Close も無効にすることができます。
サンプルコード
以下にサンプルコードを示します。
C# 全般
// CreateParams プロパティをオーバーライドする protected override System.Windows.Forms.CreateParams CreateParams { get { const int CS_NOCLOSE = 0x200; System.Windows.Forms.CreateParams createParams = base.CreateParams; createParams.ClassStyle |= CS_NOCLOSE; return createParams; } }
関連するリファレンス
以下に関連するリファレンスを示します。
- System.Windows.Forms.Form クラス
- System.Windows.Forms.Form.CreateParams プロパティ
- System.Windows.Forms.CreateParams クラス
- System.Windows.Forms.CreateParams.ClassStyle プロパティ