Member 13707257 Ответов: 1

Как я могу использовать picturebox с hscrollbar и vscrollbar для прокрутки рисунка, такого как линия, круг и ...?


Я не хочу использовать панель для шролла.

Спасибо

Что я уже пробовал:

private in x = 0, y = 0;
private PictureBox p;

private void Form1_Load(object sender, System.EventArgs e) {
   hScrollBar1.Width = pictureBox1.Width;
   hScrollBar1.Left = pictureBox1.Left;
   hScrollBar1.Top = pictureBox1.Bottom;
   hScrollBar1.Maximum = pictureBox1.Image.Width - pictureBox1.Width;
   vScrollBar1.Height = pictureBox1.Height;
   vScrollBar1.Left = pictureBox1.Left + pictureBox1.Width;
   vScrollBar1.Top = pictureBox1.Top;
   vScrollBar1.Maximum = pictureBox1.Image.Height - pictureBox1.Height;
}

private void hScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e) {
   x = (sender as HScrollBar).Value;
   pictureBox1.Refresh();
}

private void vScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e) {
   y = (sender as VScrollBar).Value;
   pictureBox1.Refresh();
}

private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
   p = sender as PictureBox;
   e.Graphics.DrawImage(p.Image, e.ClipRectangle, x, y, e.ClipRectangle.Width, 
     e.ClipRectangle.Height, GraphicsUnit.Pixel);
   e.Graphics.DrawLine(new Pen(Color.Blue, 0), new Point(20, 50), new Point(120, 180));
   
}

1 Ответов

Рейтинг:
0

RickZeeland

Вот решение без панели: Коробка Прокручивать Изображение [^]

Но я бы рекомендовал это решение с панелью: PictureBox с полосой прокрутки[^]


Maciej Los

5ed!

Member 13707257

я не хочу использовать ни одну панель