截图&操作
1、当鼠标离开控件范围后,进度条圆点不显示
2、当鼠标进入控件范围后,进度条圆点显示
3、点击进度条后,获取当前点击点对应的进度值。以便设置播放器跳转进度。
源码
namespace WinFormFramework.Controls
{
[System.ComponentModel.ToolboxItem(true)]
[System.ComponentModel.DefaultEvent("ValueChanged")]
public class TrackBar : System.Windows.Forms.Control
{
#region 新增事件
public delegate void ValueChangedEventHandler(TrackBar sender, double value);
[System.ComponentModel.Category("Property Changed"), System.ComponentModel.Description("更改进度条进度值时引发的事件。")]
public event ValueChangedEventHandler ValueChanged;
#endregion
#region 属性
[System.ComponentModel.Category("Appearance"), System.ComponentModel.Description("获取或设置进度条值小数点后的位数。"), System.ComponentModel.DefaultValue(2)]
public int DecimalDigits { get; set; } = 2;
private double minValue = 0.00;
[System.ComponentModel.Category("Appearance"), System.ComponentModel.Description("获取或设置进度条最小值。"), System.ComponentModel.DefaultValue(0.00)]
public double MinValue
{
get { return minValue; }
set
{
minValue = System.Math.Round(value, DecimalDigits);
Invalidate();
}
}
private double maxValue = 100.00;
[System.ComponentModel.Category("Appearance"), System.ComponentModel.Description("获取或设置进度条最大值。"), System.ComponentModel.DefaultValue(100.00)]
public double MaxValue
{
get { return maxValue; }
set
{
maxValue = System.Math.Round(value, DecimalDigits);
Invalidate();
}
}
private double value = 0.00;
[System.ComponentModel.Category("Appearance"), System.ComponentModel.Description("获取或设置进度条当前进度的值。"), System.ComponentModel.DefaultValue(0.00)]
public double Value
{
get { return value; }
set
{
this.value = System.Math.Round(value, DecimalDigits);
Invalidate();