【问题标题】:How can i move scrollbars of PictureBox when button is pressed in Visual Studio?在 Visual Studio 中按下按钮时如何移动 PictureBox 的滚动条?
【发布时间】:2019-06-20 03:23:41
【问题描述】:

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

我有 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


【解决方案1】:

使用以下代码向表单添加一个临时按钮(插入 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;
}

【讨论】:

  • 这就是我想要的!谢谢!即使没有这个“临时按钮”,它也可以工作。
  • 很高兴它成功了。临时按钮只是为了帮助您确定固定按钮的必要坐标。您的问题的滚动方面不需要它。
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-27
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
相关资源
最近更新 更多