DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

スクロールバーを付けて画像を表示する

注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。

表示する画像が大きすぎる時、スクロールバーが表示されて画像がスクロールできるようになると便利です。このような機能を実現させる簡単な方法は、画像を表示するピクチャボックスをパネルコントロールにのせ、パネルコントロールのAutoScrollプロパティをTrueにすることです。このようにすることにより、ピクチャボックスがパネルコントロールより大きくなった時、スクロールバーが表示されるようになります。

Visual Studioのフォームのデザイナを使った時の具体的な手順を示します。

  1. Panelコントロールをフォームに追加します。ここでは追加したPanelコントロールの名前が"panel1"であるとします。
  2. panel1のAutoScrollプロパティをTrueに変更します。
  3. PictureBoxコントロールをpanel1内に追加します。この時必ずpanel1の中に入れてください。ここでは追加したPictureBoxコントロールの名前が"pictureBox1"であるとします。
  4. pictureBox1のLocationプロパティを "0, 0" にします。
  5. pictureBox1のSizeModeプロパティをAutoSizeにします。(このようにすると、Imageプロパティで画像を表示させたとき、画像の大きさに合わせてピクチャボックスの大きさが自動的に変わるようになります。)
  6. pictureBox1のImageプロパティに表示させる画像を指定します。

以下のコードは、デザイナを使わずにPanelコントロールとPictureBoxコントロールを作成する例です。

VB.NET
コードを隠すコードを選択
'Panelオブジェクトの作成
Dim panel1 As New Panel
'プロパティの設定
panel1.Name = "panel1"
panel1.Location = New Point(8, 8)
panel1.Size = New Size(200, 200)
'スクロールバーが表示されるようにする
panel1.AutoScroll = True

'PictureBoxオブジェクトの作成
Dim pictureBox1 As New PictureBox
'プロパティの設定
pictureBox1.Name = "pictureBox1"
pictureBox1.Location = New Point(0, 0)
'画像を表示するとき、画像の大きさに合わせて
'PictureBoxの大きさが変更させるようにする()
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize
'PictureBoxに画像を表示する
pictureBox1.Image = Image.FromFile("C:\サンプル.jpg")

'pictureBox1をpanel1にのせる
panel1.Controls.Add(pictureBox1)

'panel1をこのフォームにのせる
Me.Controls.Add(panel1)
C#
コードを隠すコードを選択
//Panelオブジェクトの作成
Panel panel1 = new Panel();
//プロパティの設定
panel1.Name = "panel1";
panel1.Location = new Point(8, 8);
panel1.Size = new Size(200, 200);
//スクロールバーが表示されるようにする
panel1.AutoScroll = true;

//PictureBoxオブジェクトの作成
PictureBox pictureBox1 = new PictureBox();
//プロパティの設定
pictureBox1.Name = "pictureBox1";
pictureBox1.Location = new Point(0, 0);
//画像を表示するとき、画像の大きさに合わせて
//PictureBoxの大きさが変更させるようにする
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
//PictureBoxに画像を表示する
pictureBox1.Image = Image.FromFile(@"C:\サンプル.jpg");

//pictureBox1をpanel1にのせる
panel1.Controls.Add(pictureBox1);

//panel1をこのフォームにのせる
this.Controls.Add(panel1);

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。