TriangleTrackBar.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace PaintDotNet.CustomControl
  11. {
  12. public partial class TriangleTrackBar : UserControl
  13. {
  14. private TriangleButton triangleButtonSubtract;
  15. private TriangleButton triangleButtonPlus;
  16. public TrackBar trackBar1;
  17. #region 设置trackBar的属性和事件
  18. ////
  19. //// 摘要:
  20. //// 在通过鼠标或键盘操作移动滚动框时发生。
  21. //[SRCategoryAttribute("CatBehavior")]
  22. //[SRDescriptionAttribute("TrackBarOnScrollDescr")]
  23. public event EventHandler TrackBarScroll;
  24. public event EventHandler TrackBarMouseUp;
  25. #endregion
  26. /// <summary>
  27. /// 必需的设计器变量。
  28. /// </summary>
  29. private System.ComponentModel.IContainer components = null;
  30. /// <summary>
  31. /// 清理所有正在使用的资源。
  32. /// </summary>
  33. /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
  34. protected override void Dispose(bool disposing)
  35. {
  36. if (disposing && (components != null))
  37. {
  38. components.Dispose();
  39. }
  40. base.Dispose(disposing);
  41. }
  42. #region 组件设计器生成的代码
  43. /// <summary>
  44. /// 设计器支持所需的方法 - 不要修改
  45. /// 使用代码编辑器修改此方法的内容。
  46. /// </summary>
  47. private void InitializeComponent()
  48. {
  49. this.trackBar1 = new System.Windows.Forms.TrackBar();
  50. this.triangleButtonSubtract = new PaintDotNet.CustomControl.TriangleButton();
  51. this.triangleButtonPlus = new PaintDotNet.CustomControl.TriangleButton();
  52. ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit();
  53. this.SuspendLayout();
  54. //
  55. // trackBar1
  56. //
  57. this.trackBar1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
  58. | System.Windows.Forms.AnchorStyles.Left)
  59. | System.Windows.Forms.AnchorStyles.Right)));
  60. this.trackBar1.AutoSize = false;
  61. this.trackBar1.Location = new System.Drawing.Point(10, 4);
  62. this.trackBar1.Margin = new System.Windows.Forms.Padding(2);
  63. this.trackBar1.Name = "trackBar1";
  64. this.trackBar1.Size = new System.Drawing.Size(180, 23);
  65. this.trackBar1.TabIndex = 25;
  66. this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.None;
  67. this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll);
  68. this.trackBar1.MouseUp += new MouseEventHandler(this.trackBar1_MouseUp);
  69. //
  70. // triangleButtonSubtract
  71. //
  72. this.triangleButtonSubtract.AlignmentStyle = System.Windows.Forms.AnchorStyles.Right;
  73. this.triangleButtonSubtract.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
  74. | System.Windows.Forms.AnchorStyles.Left)));
  75. this.triangleButtonSubtract.BackColor = System.Drawing.Color.Transparent;
  76. this.triangleButtonSubtract.Location = new System.Drawing.Point(4, 8);
  77. this.triangleButtonSubtract.Name = "triangleButtonSubtract";
  78. this.triangleButtonSubtract.Size = new System.Drawing.Size(10, 12);
  79. this.triangleButtonSubtract.TabIndex = 27;
  80. this.triangleButtonSubtract.Click += new System.EventHandler(this.buttonSubtract_Click);
  81. //
  82. // triangleButtonPlus
  83. //
  84. this.triangleButtonPlus.AlignmentStyle = System.Windows.Forms.AnchorStyles.Left;
  85. this.triangleButtonPlus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
  86. | System.Windows.Forms.AnchorStyles.Right)));
  87. this.triangleButtonPlus.BackColor = System.Drawing.Color.Transparent;
  88. this.triangleButtonPlus.Location = new System.Drawing.Point(186, 8);
  89. this.triangleButtonPlus.Name = "triangleButtonPlus";
  90. this.triangleButtonPlus.Size = new System.Drawing.Size(10, 12);
  91. this.triangleButtonPlus.TabIndex = 26;
  92. this.triangleButtonPlus.Click += new System.EventHandler(this.buttonPlus_Click);
  93. //
  94. // TriangleTrackBar
  95. //
  96. this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
  97. this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  98. this.Controls.Add(this.triangleButtonSubtract);
  99. this.Controls.Add(this.triangleButtonPlus);
  100. this.Controls.Add(this.trackBar1);
  101. this.Name = "TriangleTrackBar";
  102. this.Size = new System.Drawing.Size(200, 30);
  103. ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit();
  104. this.ResumeLayout(false);
  105. }
  106. #endregion
  107. public TriangleTrackBar()
  108. {
  109. InitializeComponent();
  110. }
  111. /// <summary>
  112. /// 设置trackBar的滚动事件
  113. /// </summary>
  114. /// <param name="sender"></param>
  115. /// <param name="e"></param>
  116. private void trackBar1_Scroll(object sender, EventArgs e)
  117. {
  118. this.TrackBarScroll?.Invoke(sender, e);
  119. }
  120. private void trackBar1_MouseUp(object sender, EventArgs e)
  121. {
  122. this.TrackBarMouseUp?.Invoke(sender, e);
  123. }
  124. #region 设置trackBar的属性
  125. [Browsable(true)]
  126. public int Value { get
  127. {
  128. return trackBar1.Value;
  129. }
  130. set
  131. {
  132. trackBar1.Value = value;
  133. }
  134. }
  135. //[Browsable(true)]
  136. //public TickStyle TickStyle { get
  137. // {
  138. // return trackBar1.TickStyle;
  139. // }
  140. // set
  141. // {
  142. // trackBar1.TickStyle = value;
  143. // }
  144. //}
  145. [Browsable(true)]
  146. public int Minimum { get
  147. {
  148. return this.trackBar1.Minimum;
  149. }
  150. set
  151. {
  152. this.trackBar1.Minimum = value;
  153. }
  154. }
  155. [Browsable(true)]
  156. public int Maximum
  157. {
  158. get
  159. {
  160. return this.trackBar1.Maximum;
  161. }
  162. set
  163. {
  164. this.trackBar1.Maximum = value;
  165. }
  166. }
  167. public string TrackBarName
  168. {
  169. get
  170. {
  171. return this.trackBar1.Name;
  172. }
  173. set
  174. {
  175. this.trackBar1.Name = value;
  176. }
  177. }
  178. //[Browsable(true)]
  179. //public bool TrackBarAutoSize
  180. //{
  181. // get
  182. // {
  183. // return this.trackBar1.AutoSize;
  184. // }
  185. // set
  186. // {
  187. // this.trackBar1.AutoSize = value;
  188. // }
  189. //}
  190. #endregion
  191. /// <summary>
  192. /// 减操作
  193. /// </summary>
  194. /// <param name="sender"></param>
  195. /// <param name="e"></param>
  196. private void buttonSubtract_Click(object sender, EventArgs e)
  197. {
  198. this.trackBar1.Value = Math.Max(this.trackBar1.Value - 1, this.trackBar1.Minimum);
  199. this.TrackBarScroll?.Invoke(this.trackBar1, e);
  200. this.TrackBarMouseUp?.Invoke(sender, e);
  201. }
  202. /// <summary>
  203. /// 加操作
  204. /// </summary>
  205. /// <param name="sender"></param>
  206. /// <param name="e"></param>
  207. private void buttonPlus_Click(object sender, EventArgs e)
  208. {
  209. this.trackBar1.Value = Math.Min(this.trackBar1.Value + 1, this.trackBar1.Maximum);
  210. this.TrackBarScroll?.Invoke(this.trackBar1, e);
  211. this.TrackBarMouseUp?.Invoke(sender, e);
  212. }
  213. }
  214. }