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