当前位置:   article > 正文

Dev TrackBar的使用--坐标轴反转以及滚轮反向解决_winform trackbar滚轮调整

winform trackbar滚轮调整

最近,在用GDI+绘图的过程中,做了一个用滚动条控制刷新所绘区域的功能,因为滚动条改变,只重绘固定的区域,只显示该区域内的数据,所以选择了dev 的Track bar,其实,多数问题可能都是不了解属性所致,如下,直接给出关键的属性图,

从上图可以看出,通过属性,可以控制trackbar的轴方向以及轴上值得排列方向,而且可以通过自定义刻度,间距等,来绘制自己所需得样式。

另外,trackbar默认支持滚轮,但是,其滚轮得滚动方向和实际所需效果是相反的(即,往上滚动是,竖轴值向下移动,反之,向上移动),这于操作习惯不符,分析原因,我觉得可能是反转了坐标轴导致的,默认的横轴下的滚轮操作,左侧为小值,向上滚动时,值向右侧移动,当为竖轴时,小值在底部,向上滚动,值向上移动,值增大,当坐标轴反转后,顶部为小值,向上滚动时,值增大,于排列相反,如此,便导致这种现象。

解决办法时:

设置属性AllowMouseWheel为false,再添加trackbar的mousewheel事件来自定义滚动事件,如下:

  1. private void trackBarControl1_Properties_MouseWheel(object sender, MouseEventArgs e)
  2. {
  3. if (e.Delta<0)
  4. {//往下滚动
  5. //MessageBox.Show("1");
  6. this.trackBarControl1.Value += 1;
  7. trackBarControl1.Refresh();
  8. trackBarControl1.Invalidate();
  9. trackBarControl1.Update();
  10. }
  11. else
  12. {//往上滚动
  13. //MessageBox.Show("2");
  14. trackBarControl1.Value -= 1;
  15. }
  16. }

如此,便可实现与其他滚动条相似的功能。

测试发现,刻度排列不可逆,暂时无其他方法可以解决这个问题,若有的话,还请大神告知,谢谢。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/309525
推荐阅读
相关标签
  

闽ICP备14008679号