WinFormsの右上隅には、フォームを最小化、最大化、および閉じる3つのボックスがあります。私ができるようにしたいのは、最小化と最大化を削除し、閉じたままにすることです。
また、フォームを閉じるのではなく、閉じるようにフォームを最小化する方法もあります。
これはどのように行うことができますか?
にはとというForm
2つのプロパティが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
して形成します。MinimizeBox
False
非表示にするフォームを右クリックし、[コントロール]->[プロパティ]を選択します。
[プロパティ]で、
これはデザイナーで行います。
閉じるときにフォームを最小化する方法はすでに回答されていますが、最小化ボタンと最大化ボタンを削除する方法は回答されていません。
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;
}