C#でWindowsフォームアプリケーションのフォームに自動的にスクロールバーを表示する方法を紹介します。
フォーム内に配置されたコントロールがフォームの画面領域を超える場合にスクロールバーを表示することで、限られたフォームのサイズを超えてコントロールを配置することができます。
本記事ではVisual Studioで作成した、Windowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。
目次
フォームに自動的にスクロールバーを表示する
フォームに自動的にスクロールバーを表示するには、System.Windows.Forms名前空間にあるFormクラスのAutoScrollプロパティを使用します。
AutoScrollプロパティはbool型になっていますので、TrueまたはFalseの真偽値を指定します。
デザイナーのプロパティグリッドで設定する
フォームに自動的にスクロールバーを表示するかどうかは、フォームデザイナーのプロパティグリッドで設定できます。
フォームデザイナーを開きます。
フォームデザイナーを開いたら、プロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合は、メニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。
デザイナーのプロパティグリッドにあるAutoScrollプロパティのドロップダウンリストボックスから、自動的にスクロールバーを表示するかどうかを選択します。
自動的にスクロールバーを表示する場合「True」自動的にスクロールバーを表示しない場合は「False」を選択します。
コードで設定する
フォームに自動的にスクロールバーを表示するかどうかは、コードで設定することもできます。
1 2 3 4 |
// フォームに自動的にスクロールバーを表示する Form form = new Form(); form.AutoScroll = true; form.Show(); |
1 2 3 4 |
// フォームに自動的にスクロールバーを表示しない Form form = new Form(); form.AutoScroll = false; form.Show(); |
サンプルプログラム
フォームに自動的にスクロールバーを表示するサンプルプログラムを作成します。
ユーザーインターフェース
フォームには自動的にスクロールバーを表示するかどうかを設定するボタンを配置します。button1はクリックするとスクロールバーを表示します。botton2はクリックするとスクロールバーを表示しなくします。
フォームには上記2つのボタンの他にいくつかのコントロールを配置します。
ソースコード
ボタンをクリックした際のイベントの処理を記述します。
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 |
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 { Form form = this; // スクロールバー表示 form.AutoScroll = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } } // 自動スクロールバーを表示しない private void button2_Click(object sender, EventArgs e) { try { Form form = this; // スクロールバー非表示 form.AutoScroll = false; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } |
プログラムの実行
プロジェクトをビルドして実行(デバッグ)して画面を表示します。
button1をクリックして自動的にスクロールバーが表示されるようにします。
button1クリック後、フォームのサイズを小さくします。
フォームに配置されたコントロールがフォームのサイズ(領域)を超えているので、スクロールバーが表示されます。
button2をクリックします。
フォームに配置されたコントロールがフォームのサイズ(領域)を超えていますが、スクロールバーは表示されません。