我在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;
        }
    }

10-01 03:06