多点滑块滑杆控件----------WinForm控件开发系列

Window自带滑块控件只有一个滑块,其功能也很简单。外表也很丑陋。

该控件是继承于 Control 基类开发的。功能可以添加多个滑点,每个滑点可以自定义颜色,滑块的形状也可以自定义,滑块锁定,渐变背景色。

这个控件滑点数扩展后功能强大了很多,例如做两点间范围的选择功能,还有分段值功能例如像多色渐变,你可以利用这个控件设置不同颜色在渐变中位置和比例。

至于控件的提示功能目前的做法是直接在控件的绘制区里面呢直接用GDI绘制的,这样会导致控件占用大量面积,如果你有兴趣的话你可以利用弹层去完善这一部分的功能。

该控件有很多属性和事件已经被屏蔽掉了。新增事件有  ValueChanged 、 GlobalValueChanged 两个事件。这两个事件分别对应滑块的值修改和全局值修改。

1.滑条可以通过 BarColorItems 集合属性 进行设置渐变背景颜色,但只有滑块数量为1个才有效。

2.通过 Orientation 属性设置滑条的方向。 

3.滑条的最大最小值分别通过 MaxValue  MinValue  属性进行设置。

4.滑条两头圆角通过 SlideBarRadius 属性设置。

5.滑块进度值可以通过 BarProgressItems  集合属性设置忽快值渐变背景色,但只有滑块数量为1个才有效。

6.滑块的数量可以通过  Items  集合属性添加。每个滑块都有以下属性,每个滑块可以设置属于自己独立的颜色,如果没有设置独立的颜色将会采取统一的颜色。

 7.DefaultValue 属性只能用来初始化滑块的初始值,这个属性只能在设计器使用,之后要读取滑块的值是通过 Value 属性来操作。

  8.SlideLock 属性可以设置滑块锁定,这种情况下该滑块是不能通过鼠标、键盘、来进行移动。以下红色和紫色的滑块就处于锁定状态。

9.滑块值分两种情况分别通过 UpdateValue 值修改方法、 UpdateGlobalValue 全局值修改方法。

10.上面图片如果通过 UpdateValue 方法修改绿色滑块值为70,那绿色滑块的值最大只能去到58也就是蓝色滑块的值。如下

11.如果是通过 UpdateGlobalValue  方法修改绿色滑块值为90,那绿色滑块和蓝色滑块的值都为80。之所以为80是因为紫色滑块状态为锁定,紫色的值是不能更改的。所以把绿色和蓝色都拦了下来。如下

12.该控件可以通过 Tab 键使控件激活从而使用键盘来修改滑块值,这种修改值方式为 UpdateValue 值修改方法。当控件被激活后滑块获焦后滑块会出现一个虚线框。我们可以通过键盘的左右键对滑块进行切换,当选中滑块后再通多上下键来修改滑块的值。如下

13.滑块获焦后也可以通过鼠标滚轮进行修改滑块的值,这种修改值方式为 UpdateValue 值修改方法。如下

14.还有通过鼠标左键对滑块进行的是 UpdateValue 值修改方法,如果是通过鼠标右键对滑块进行的则是 UpdateGlobalValue 全局值修改方法。

重写的方法如下

新增类如下

新增属性如下

控件库的源码已整体发布到gitee,下载地址:(花木兰控件库)https://gitee.com/tlmbem/hml

原文地址:https://www.cnblogs.com/tlmbem/p/11410163.html