フォームにスクロールバーを自動で表示する [C#]

C#でWindowsフォームアプリケーションのフォームに自動的にスクロールバーを表示する方法を紹介します。
フォーム内に配置されたコントロールがフォームの画面領域を超える場合にスクロールバーを表示することで、限られたフォームのサイズを超えてコントロールを配置することができます。

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

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

フォームに自動的にスクロールバーを表示する

フォームに自動的にスクロールバーを表示するには、System.Windows.Forms名前空間にあるFormクラスのAutoScrollプロパティを使用します。
AutoScrollプロパティはbool型になっていますので、TrueまたはFalseの真偽値を指定します。

デザイナーのプロパティグリッドで設定する

フォームに自動的にスクロールバーを表示するかどうかは、フォームデザイナーのプロパティグリッドで設定できます。

フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。

フォームデザイナーのプロパティグリッド
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。

デザイナーのプロパティグリッドにあるAutoScrollプロパティのドロップダウンリストボックスから、自動的にスクロールバーを表示するかどうかを選択します。
自動的にスクロールバーを表示する場合「True」自動的にスクロールバーを表示しない場合は「False」を選択します。

フォームデザイナーのAutoScrollプロパティ

コードで設定する

フォームに自動的にスクロールバーを表示するかどうかは、コードで設定することもできます。

スクロールバーを表示する

スクロールバーを表示しない

サンプルプログラム

フォームに自動的にスクロールバーを表示するサンプルプログラムを作成します。

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

フォームには自動的にスクロールバーを表示するかどうかを設定するボタンを配置します。button1はクリックするとスクロールバーを表示します。botton2はクリックするとスクロールバーを表示しなくします。
フォームには上記2つのボタンの他にいくつかのコントロールを配置します。

フォームに自動的にスクロールバーを表示するフォームのデザイン

ソースコード

ボタンをクリックした際のイベントの処理を記述します。

プログラムの実行

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

フォームに自動的にスクロールバーを表示するサンプルプログラムのフォームを起動

button1をクリックして自動的にスクロールバーが表示されるようにします。

button1クリック後、フォームのサイズを小さくします。

フォームに自動的にスクロールバーを表示する

フォームに配置されたコントロールがフォームのサイズ(領域)を超えているので、スクロールバーが表示されます。

button2をクリックします。

フォームに自動的にスクロールバーを表示しない

フォームに配置されたコントロールがフォームのサイズ(領域)を超えていますが、スクロールバーは表示されません。