我用的.net2005
我在窗体上添加了hScrollBar控件 滚动条,
现在我不知道用哪个事件响应我的需求
1 我想知道我点击两侧箭头时候 是点击的左侧箭头还是右侧箭头
2 点击一下时候移动块移动多少距离(视觉上)或者准确来说 点击一下移动多少象素呢
3 我可否控制拖动块的长度 就是中间可移动那个块的长度 
因为有的时候东西多 我想让它短一些,看起来可以拖动很长的距离
有的时候东西少 我想让它长一些 看起来可以拖动很短的距离。简单说下我的实例是这样 在一个panel中画图 有的时候可以一个屏幕画下 有的时候想要通过hScrollBar来实现点击看右侧没有显示下的区域(要重画 不是一次全画完)
我还想问问各位高手 怎么能实现象pdf 阅读器那样 在panel上面鼠标显示手的形状 然后可以实现点击拖动一下 来实现我上面所说的功能呢 万分感谢

解决方案 »

  1.   

    给楼主一些提示:
    1.要实现你的功能,你并不需要知道点的向左或向右的箭头,而只需要知道中间的滑动快离左右多少距离了,此值可以从滚动事件的NewValue中取得
    private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
            {
                this.textBox1 .Text = e.NewValue.ToString ();
            }我可否控制拖动块的长度 就是中间可移动那个块的长度
    ---------------------
    可以,请参照以下,这样当滚动条到最右边时,刚好圆也到最右边了
    hScrollBar1.Maximum = 你圆的直径长度;
    3,你可以考虑在内存中画好圆,然后根据滚动条的位置,将内存画布中指定区域的图贴上去即可
      

  2.   

    3,你可以考虑在内存中画好圆,然后根据滚动条的位置,将内存画布中指定区域的图贴上去即可to dyw31415926(dyw31415926:
    "然后根据滚动条的位置,将内存画布中指定区域的图贴上去即可"
    这一步怎么做?
      

  3.   

    1、利用(( HScrollBar)sender).value>e.newvalue
    就可以知道点的是哪个了2、点一下移到多少用SmallChange属性设置
    3、要利用maximum和largechangeg两个属性来实现。