c# - 在 Visual Studio 中按下按钮时如何移动 PictureBox 的滚动条?
问题描述
按下按钮时如何移动图片框的滚动条?
我有 flowLayoutPanel(Dock:无,AutoSize:false,AutoScroll:true),我在其上放置了一个 PictureBox(Dock:无,SizeMode:AutoSize)。我将一个大图像 (9000x6315px) 加载到 PictureBox 中,因此滚动条可见并允许我滚动地图。但是..只能用鼠标。按下按钮时,如何使用代码滚动 PictureBox?
问题在 youtube 上的这个视频中更明显(持续时间 3 分钟),让您更好地理解我的意思:
在 Embarcadero Rad Studio 中,我可以编写如下内容:
ScrollBox1->HorzScrollBar->Position=500;
ScrollBox1->VertScrollBar->Position=500;
VS中可以吗?
谢谢!
解决方案
使用以下代码向表单添加一个临时按钮(插入 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;
}
推荐阅读
- kibana - Grok 模式中的赛门铁克 WSS?
- python - 如何导入“模块”类?
- yii2 - 如何在 yii2 中创建批量插入
- azure-devops - 如何使用 Azure DevOps 控制内部版本号?
- android - react-Native:iOS上的背景图片无法覆盖整个屏幕
- c# - 控制器参数格式
- javascript - 如何在 html 中添加 Onclick
- asynchronous - 输入'未来
' 不是类型 'List 的子类型 ' - electron - 在工作区更改时隐藏电子应用程序窗口(在 macOS 上)
- python - 在 django 中安装 Postgresql 数据库的问题