现在有一个form,其内有一个panel,form的autoscroll设为true。
现在想要实现这样的功能:
当用户移动form的滚动条时,记录移动前的滚动条位置和移动后的位置。
form中没有滚动条的移动事件,请问这种情况如何处理?

解决方案 »

  1.   

    this.AutoScrollPosition.X/Y 属性就是记录滚动量的
      

  2.   

    如果要在移动滚动条时移动控件位置,就
    重写该方法
    protected override void OnPaint(PaintEventArgs e)
    {
        //改变位置就成
        //.....
        base.OnPaint(e);
    }
      

  3.   

    protected override void OnPaint(PaintEventArgs e)
    {
        label2.Text = Convert.ToString(Math.Abs(this.AutoScrollPosition.X)) +"   "+ Convert.ToString(Math.Abs(this.AutoScrollPosition.Y));
        base.OnPaint(e);
    }
    写在这里面不就得了
    当你的鼠标UP后滚动的位置就输出来了,只不过是负数,把他转成正数就成!
      

  4.   

    服了你了!
    $%*&*($%#%^%@#@#$%^&*(&^%^
    知道FORM的总长度,知道滚动的长度,难道还不知道刚刚所在的位置?????????/
      

  5.   

    http://singlepine.cnblogs.com/articles/257213.html