using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PaintDotNet.CustomControl
{
public partial class TriangleTrackBar : UserControl
{
private TriangleButton triangleButtonSubtract;
private TriangleButton triangleButtonPlus;
public TrackBar trackBar1;
#region 设置trackBar的属性和事件
////
//// 摘要:
//// 在通过鼠标或键盘操作移动滚动框时发生。
//[SRCategoryAttribute("CatBehavior")]
//[SRDescriptionAttribute("TrackBarOnScrollDescr")]
public event EventHandler TrackBarScroll;
public event EventHandler TrackBarMouseUp;
#endregion
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
this.trackBar1 = new System.Windows.Forms.TrackBar();
this.triangleButtonSubtract = new PaintDotNet.CustomControl.TriangleButton();
this.triangleButtonPlus = new PaintDotNet.CustomControl.TriangleButton();
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit();
this.SuspendLayout();
//
// trackBar1
//
this.trackBar1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.trackBar1.AutoSize = false;
this.trackBar1.Location = new System.Drawing.Point(10, 4);
this.trackBar1.Margin = new System.Windows.Forms.Padding(2);
this.trackBar1.Name = "trackBar1";
this.trackBar1.Size = new System.Drawing.Size(180, 23);
this.trackBar1.TabIndex = 25;
this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.None;
this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll);
this.trackBar1.MouseUp += new MouseEventHandler(this.trackBar1_MouseUp);
//
// triangleButtonSubtract
//
this.triangleButtonSubtract.AlignmentStyle = System.Windows.Forms.AnchorStyles.Right;
this.triangleButtonSubtract.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.triangleButtonSubtract.BackColor = System.Drawing.Color.Transparent;
this.triangleButtonSubtract.Location = new System.Drawing.Point(4, 8);
this.triangleButtonSubtract.Name = "triangleButtonSubtract";
this.triangleButtonSubtract.Size = new System.Drawing.Size(10, 12);
this.triangleButtonSubtract.TabIndex = 27;
this.triangleButtonSubtract.Click += new System.EventHandler(this.buttonSubtract_Click);
//
// triangleButtonPlus
//
this.triangleButtonPlus.AlignmentStyle = System.Windows.Forms.AnchorStyles.Left;
this.triangleButtonPlus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.triangleButtonPlus.BackColor = System.Drawing.Color.Transparent;
this.triangleButtonPlus.Location = new System.Drawing.Point(186, 8);
this.triangleButtonPlus.Name = "triangleButtonPlus";
this.triangleButtonPlus.Size = new System.Drawing.Size(10, 12);
this.triangleButtonPlus.TabIndex = 26;
this.triangleButtonPlus.Click += new System.EventHandler(this.buttonPlus_Click);
//
// TriangleTrackBar
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.triangleButtonSubtract);
this.Controls.Add(this.triangleButtonPlus);
this.Controls.Add(this.trackBar1);
this.Name = "TriangleTrackBar";
this.Size = new System.Drawing.Size(200, 30);
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit();
this.ResumeLayout(false);
}
#endregion
public TriangleTrackBar()
{
InitializeComponent();
}
///
/// 设置trackBar的滚动事件
///
///
///
private void trackBar1_Scroll(object sender, EventArgs e)
{
this.TrackBarScroll?.Invoke(sender, e);
}
private void trackBar1_MouseUp(object sender, EventArgs e)
{
this.TrackBarMouseUp?.Invoke(sender, e);
}
#region 设置trackBar的属性
[Browsable(true)]
public int Value { get
{
return trackBar1.Value;
}
set
{
trackBar1.Value = value;
}
}
//[Browsable(true)]
//public TickStyle TickStyle { get
// {
// return trackBar1.TickStyle;
// }
// set
// {
// trackBar1.TickStyle = value;
// }
//}
[Browsable(true)]
public int Minimum { get
{
return this.trackBar1.Minimum;
}
set
{
this.trackBar1.Minimum = value;
}
}
[Browsable(true)]
public int Maximum
{
get
{
return this.trackBar1.Maximum;
}
set
{
this.trackBar1.Maximum = value;
}
}
public string TrackBarName
{
get
{
return this.trackBar1.Name;
}
set
{
this.trackBar1.Name = value;
}
}
//[Browsable(true)]
//public bool TrackBarAutoSize
//{
// get
// {
// return this.trackBar1.AutoSize;
// }
// set
// {
// this.trackBar1.AutoSize = value;
// }
//}
#endregion
///
/// 减操作
///
///
///
private void buttonSubtract_Click(object sender, EventArgs e)
{
this.trackBar1.Value = Math.Max(this.trackBar1.Value - 1, this.trackBar1.Minimum);
this.TrackBarScroll?.Invoke(this.trackBar1, e);
this.TrackBarMouseUp?.Invoke(sender, e);
}
///
/// 加操作
///
///
///
private void buttonPlus_Click(object sender, EventArgs e)
{
this.trackBar1.Value = Math.Min(this.trackBar1.Value + 1, this.trackBar1.Maximum);
this.TrackBarScroll?.Invoke(this.trackBar1, e);
this.TrackBarMouseUp?.Invoke(sender, e);
}
}
}