WinFormsの右上隅には、フォームを最小化、最大化、および閉じる3つのボックスがあります。私ができるようにしたいのは、最小化と最大化を削除し、閉じたままにすることです。
また、フォームを閉じるのではなく、閉じるようにフォームを最小化する方法もあります。
これはどのように行うことができますか?
にはとというForm2つのプロパティがMinimizeBoxありMaximizeBox、両方をに設定しfalseます。
フォームの終了を停止するには、FormClosingイベントを処理しe.Cancel = true;、そこに設定してから、を設定しWindowState = FormWindowState.Minimized;てフォームを最小化します。
プロパティを次のように設定MaximizeBoxおよびMinimizeBox形成しますFalse
ハンドラーをFormClosingイベントにバインドしてからe.Cancel = true、を設定し、フォームを設定しthis.WindowState = FormWindowState.Minimizedます。
フォームを実際に閉じたい場合は、クラス全体のブール値を作成_closeし、ハンドラーでをに設定e.Cancelして!_close、ユーザーがウィンドウをクリックしXても閉じないようにしますが、それでも閉じることができます(ただそれを殺す)とclose = true; this.Close();
(そして私の答えを完全にするために)プロパティをに設定MaximizeBoxして形成します。MinimizeBoxFalse
非表示にするフォームを右クリックし、[コントロール]->[プロパティ]を選択します。
[プロパティ]で、
これはデザイナーで行います。
閉じるときにフォームを最小化する方法はすでに回答されていますが、最小化ボタンと最大化ボタンを削除する方法は回答されていません。
FormBorderStyle:::FixedDialog
MinimizeBox_ false
MaximizeBox_false
フォームコンストラクター内で最大化を無効にするだけです。
public Form1(){
InitializeComponent();
MaximizeBox = false;
}
閉じるときに最小化する。
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
e.Cancel = true;
WindowState = FormWindowState.Minimized;
}
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}