Panel上のPictureBoxをスクロールさせたい。
- 題名: Panel上のPictureBoxをスクロールさせたい。
- 著者: hige
- 日時: 2009/10/06 21:41:47
- ID: 25523
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: Panel上のPictureBoxをスクロールさせたい。
- 著者: Hongliang
- 日時: 2009/10/06 22:56:03
- ID: 25526
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: Panel上のPictureBoxをスクロールさせたい。
- 著者: hige
- 日時: 2009/10/07 13:45:57
- ID: 25535
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になっております。
C#は今回初めてで、PictureBoxに画像を貼り付け、
その画像をスクロールしたいのですが、うまくいきません。
下記の1, 2の方法で、それぞれスクロールと画像表示を行っております。
(DOBON.NET様のページから引用)
下記1のサンプルのように、パネル上にPictureBoxを貼り付け、
画像をImageプロパティにセットした場合は、
正常にスクロールバーが表示されるのですが、
2のように、Paintイベントを使いDrawImageメソッドを行い、
画像を表示すると、画像はパネルよりも大きいはずなのに、
スクロールバーが表示されません。
(つまり、1と2を組みあわせた場合です。)
Paintイベントを使用した場合はスクロールはできないのでしょうか?
1.「スクロールバーを付けて画像を表示する」
http://dobon.net/vb/dotnet/graphics/scrollimage.html
//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);
2.「画像ファイルを表示する」
//Bitmapオブジェクトの作成(画像ファイルを読み込む)
Image _bmp = Image.FromFile(@"C:\Blue hills.jpg");
//PictureBox1のイベントハンドラ
private void PictureBox1_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
//Paintイベントハンドラで画像を表示する
e.Graphics.DrawImage(_bmp, 0, 0, _bmp.Width, _bmp.Height);
}
なお、1と2を組み合わせた場合は、1の※部分は、コメントアウトし、
2の_bmpをメンバーとし、2のPaintイベントで画像を作成します。