WinFormで最小化と最大化を無効にしますか?


98

WinFormsの右上隅には、フォームを最小化、最大化、および閉じる3つのボックスがあります。私ができるようにしたいことは、最小化と最大化を削除することです。

また、フォームを閉じるのではなく、フォームを最小化する方法についても説明します。

これはどのように行うことができますか?

回答:


161

FormMinimizeBoxおよびという2つのプロパティがありMaximizeBox、両方にを設定しfalseます。

フォームのクローズを停止するには、FormClosingイベントを処理し、e.Cancel = true;そこに設定WindowState = FormWindowState.Minimized;してから、フォームを最小化するように設定します。


1
コントロールボックスをfalseに設定できませんでしたか?
クリスタンは2015

3
@krystanhonour OPはクローズを維持したかった。
Hans Olsson、2015年


15

ハンドラーをFormClosingイベントにバインドしてからe.Cancel = true、を設定し、フォームを設定しますthis.WindowState = FormWindowState.Minimized

フォームを実際に閉じる場合は、クラス全体のブール値_closeを作成し、ハンドラーでに設定e.Cancelします!_close。これにより、ユーザーがXウィンドウをクリックしたときにフォームが閉じないようにすることができます。殺すだけ)close = true; this.Close();

(そして、私の答えを完全にするために)プロパティをに設定MaximizeBoxしてMinimizeBoxフォームしますFalse


5

非表示にするフォームを右クリックし、[コントロール]-> [プロパティ]を選択します。

プロパティで設定

  • コントロールボックス-> False
  • ボックスを最小化-> False
  • ボックスを最大化-> False

これはデザイナーで行います。


4

閉じたときにフォームを最小化する方法は既に回答されていますが、最小化ボタンと最大化ボタンを削除する方法はありませんでした。
FormBorderStyleFixedDialog
MinimizeBoxfalse
MaximizeBoxfalse


3

フォームコンストラクター内で最大化を無効にするだけです。

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

閉じるときに最小化します。

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.