フォームのクライアント領域のサイズを取得/設定する [C#]

C#でWindowsフォームアプリケーションのフォームのクライアント領域を取得、設定する方法を紹介します。
フォームのクライアント領域を取得、設定するには、System.Windows.Forms名前空間にあるFormクラスのClientSizeプロパティを使用します。

本記事ではVisual Studioで作成した、Windowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。

Windowsフォームアプリケーションのプロジェクト(ソリューション)を作成する。[C#]
Visual StudioでC#のWindowsフォームアプリケーションのプロジェクト(ソリューション)を作成する方法を記載します。 ...

フォームのクライアント領域を取得する

ClientSizeプロパティはフォームのクライアント領域のサイズをSystem.Drawing名前空間のSize構造体で返します。

ClientSize構造体のWidthはフォームのクライアント領域の幅、Heightはフォームのクライアント領域の高さになります。(全体の幅、高さにはボーダー(境界線)やタイトルバーのサイズを含みます。)

上記の例では、Size構造体を変数に取得してからWidthとHeightを取得しましたが、直接取得することもできます。

フォームのクライアント領域を設定する

フォームのクライアント領域はコードで設定することができます。(フォームデザイナーのプロパティグリッドでは設定できません。)

コードで設定する

コードエディタを表示して以下のコードを入力します。

フォームのクライアント領域のサイズは、境界とタイトルバーを除いたフォームのサイズになります。 フォーム内のコントロールを配置できる領域が、フォームのクライアント領域(ClientSize)になります。 ClientSizeプロパティを使用すると、グラフィックス操作の実行時や、フォーム上のコントロールのサイズ変更や配置を行う時に、適切な寸法が取得できます。

フォーム全体のサイズを取得するにはSizeプロパティを使用するか、幅と高さのプロパティWidthとHeightを使用します。

フォームのサイズ(幅と高さ)を取得/設定する [C#]
C#でWindowsフォームアプリケーションのフォームのサイズを取得/設定する方法を紹介します。 フォームのサイズを取得または設定するには...

サンプルプログラム

ここではフォームのClientSizeプロパティでクライアント領域のサイズを指定してフォームを作成し、フォームのSizeプロパティで全体のサイズを取得して、クライアント領域のサイズと全体のサイズの差異からフォームの境界線(ボーダー)の幅とタイトルバーの高さを取得するサンプルプログラムを作成します。

ユーザーインターフェース

フォームには、境界線(ボーダー)とタイトルバーのサイズを取得して表示するボタン(button1)と、サイズを表示するラベル(label1とlabel2)を配置します。

クライアントサイズのサンプルフォームのデザイン

ソースコード

ボタン(button1)がクリックされた時に境界線(ボーダー)とタイトルバーのサイズを取得して表示します。

プログラムの実行

プロジェクトをビルドして実行(デバッグ)します。

クライアントサイズのサンプルフォームを起動

button1をクリックします。

クライアントサイズのサンプルフォームのボタンをクリック

フォームの境界線(ボーダー)の幅とタイトルバーの高さが表示されます。

フォームの境界線(ボーダー)の幅とタイトルバーの高さを表示

button1をクリックすると作成したフォームが表示されます。
表示されるフォームにはクライアント領域いっぱいに配置されたボタンがありますのでクリックします。

ダイアログボックスフォームのボタンをクリック

ボタンのサイズ(フォームのクライアントサイズ)がメッセージボックスで表示されます。

クライアントサイズをメッセージボックスで表示