我在C#,WindowsForms中有一个项目,我创建了一个panel
,其中包含的pictureBox
比他的 parent 大得多。
我将panel.AutoScroll
转换为true
,我想做的就是将此pictureBox
拖动到panel
中,而不是捕捉滚动并移动它。
IE。当我抓取图像并将光标向左和向下移动时,我希望得到与panel
的滚动相同的行为。
怎么做 ?
最佳答案
好,我知道了。 ;-)如果其他人也有同样的问题,这里是解决方案:
protected Point clickPosition;
protected Point scrollPosition;
private void pictureBox_MouseDown(object sender, MouseEventArgs e)
{
this.clickPosition.X = e.X;
this.clickPosition.Y = e.Y;
}
private void pictureBox_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
scrollPosition.X = scrollPosition.X + clickPosition.X - e.X;
scrollPosition.Y = scrollPosition.Y + clickPosition.Y - e.Y;
this.panel.AutoScrollPosition = scrollPosition;
}
}