Как я могу перемещать полосы прокрутки PictureBox при нажатии кнопки в Visual Studio? - PullRequest
0 голосов
/ 26 января 2019

Как я могу перемещать полосы прокрутки в окне картинки при нажатии кнопки?

У меня есть flowLayoutPanel (Dock: нет, AutoSize: false, AutoScroll: true), и я поместил в него PictureBox (Dock: нет, SizeMode: AutoSize). Я загрузил большое изображение (9000x6315px) в PictureBox, чтобы полосы прокрутки были видны и позволяли мне прокручивать карту. Но .. только мышкой. Как прокрутить PictureBox с помощью кода при нажатии кнопки?

Проблема лучше видна в этом видео на YouTube (продолжительность 3 минуты) и позволит вам лучше понять, что я имею в виду:

https://youtu.be/3Haqzsyn_zE

В Embarcadero Rad Studio я мог написать что-то вроде этого:

ScrollBox1->HorzScrollBar->Position=500;  
ScrollBox1->VertScrollBar->Position=500;

Возможно ли это в VS?

Спасибо!

1 Ответ

0 голосов
/ 26 января 2019

Добавьте временную кнопку в форму с этим кодом (вставив название вашей FlowLayoutPanel):

Console.WriteLine(flowLayoutPanel1.AutoScrollPosition.ToString());

Прокрутите увеличенную карту до нужного места и нажмите кнопку.

Пример вывода:

{X=-146,Y=-164}

Какими бы ни были эти значения, вы хотите сохранить их противоположность.Повторите процесс и запишите все необходимые позиции.

Теперь вы можете установить AutoScrollPosition вашей FlowLayoutPanel на любую из этих точек, и она будет прокручиваться там.Например, если это была нужная точка для вашей кнопки «B1»:

private void B1_Click(object sender, EventArgs e)
{
    Point pt = new Point(146, 164);
    flowLayoutPanel1.AutoScrollPosition = pt;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...