C#でWindowsフォームアプリケーションのフォームのウィンドウの状態を取得・設定する方法を紹介します。
ウィンドウの状態を設定することによって、フォームを最大化したり、最小化したりすることできます。
本記事ではVisual Studioで作成した、Windowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
目次
フォームのウィンドウ状態を取得する
フォームのウィンドウ状態は、System.Windows.Forms名前空間にあるFormクラスのWindowStateプロパティで取得できます。
1 2 3 4 5 6 |
// フォームのウィンドウ状態を取得 Form form = new Form(); FormWindowState formWindowState = form.WindowState; form.Show(); Console.WriteLine(formWindowState); |
WindowStateプロパティはFormWindowState列挙型を返します。
FormWindowState列挙型
FormWindowState列挙型には以下のメンバー(フィールド)があります。
名前 | 値 | 説明 |
---|---|---|
Normal | 0 | 最大化も最小化もされていない既定サイズのウィンドウ。 |
Minimized | 1 | 最小化されたウィンドウ。 |
Maximized | 2 | 最大化されたウィンドウ。 |
フォームのウィンドウ状態を設定する
フォームのウィンドウ状態はFormクラスのWindowStateプロパティにFormWindowState列挙型の値を設定することで変更できます。
デザイナーのプロパティグリッドで設定する
フォームのウィンドウ状態はフォームデザイナーのプロパティグリッドで設定できます。
フォームデザイナーを開きます。
フォームデザイナーを開いたらプロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合はメニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。
デザイナーのプロパティグリッドにあるWindowStateプロパティのドロップダウンリストボックスからウィンドウの状態を選択します。
ウィンドウを最大化する場合「Maximized」最小化する場合は「Minimized」通常のウィンドウサイズの場合は「Normal」を選択します。
コードで設定する
フォームのウィンドウ状態はコードで設定することもできます。
1 2 3 4 |
// フォームのウィンドウを最大化する Form form = new Form(); form.WindowState = FormWindowState.Maximized; form.Show(); |
1 2 3 4 |
// フォームのウィンドウを最小化する Form form = new Form(); form.WindowState = FormWindowState.Minimized; form.Show(); |
1 2 3 4 |
// フォームのウィンドウを通常サイズにする Form form = new Form(); form.WindowState = FormWindowState.Normal; form.Show(); |
サンプルプログラム
フォームのウィンドウ状態を取得、設定するサンプルプログラムを作成します。
ユーザーインターフェース
フォームにはウィンドウを最大化するボタン(button1)、最小化するボタン(button2)、通常サイズにするボタン(button3)、ウィンドウ状態を表示するボタン(button4)を配置します。
ソースコード
ボタンをクリックした際のイベントの処理を記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
using System; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { // コンストラクタ public Form1() { InitializeComponent(); } // 最大化ボタンクリック private void button1_Click(object sender, EventArgs e) { try { // ウィンドウを最大化する this.WindowState = FormWindowState.Maximized; // ウィンドウ状態を表示する this.ShowWindowState(this); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 最小化ボタンクリック private void button2_Click(object sender, EventArgs e) { try { // ウィンドウを最小化する this.WindowState = FormWindowState.Minimized; // ウィンドウ状態を表示する this.ShowWindowState(this); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 通常サイズボタンクリック private void button3_Click(object sender, EventArgs e) { try { // ウィンドウを通常サイズにする this.WindowState = FormWindowState.Normal; // ウィンドウ状態を表示する this.ShowWindowState(this); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // ウィンドウ状態を表示ボタンクリック private void button4_Click(object sender, EventArgs e) { try { // ウィンドウ状態を表示する this.ShowWindowState(this); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // フォームのウィンドウ状態をメッセージボックスで表示する private void ShowWindowState(Form form) { // ウィンドウ状態を取得する FormWindowState formWindowState = form.WindowState; // メッセージボックスで表示 MessageBox.Show(formWindowState.ToString()); } } } |
ウィンドウ状態を変更するとフォームのウィンドウ状態がメッセージボックスで表示されます。