首页 > 解决方案 > 在 Visual Studio 中按下按钮时如何移动 PictureBox 的滚动条?

问题描述

按下按钮时如何移动图片框的滚动条?

我有 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中可以吗?

谢谢!

标签: c#visual-studio

解决方案


使用以下代码向表单添加一个临时按钮(插入 FlowLayoutPanel 的名称):

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

将缩放后的地图滚动到您想要的位置,然后单击按钮。

示例输出:

{X=-146,Y=-164}

无论这些值是什么,您都希望存储它们的相反值。重复这个过程并写下你需要的所有职位。

现在您可以将 FlowLayoutPanel 的 AutoScrollPosition 设置为这些点中的任何一个,它将在那里滚动。例如,如果这是您的“B1”按钮所需的点:

private void B1_Click(object sender, EventArgs e)
{
    Point pt = new Point(146, 164);
    flowLayoutPanel1.AutoScrollPosition = pt;
}

推荐阅读