CNumericUpDown.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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.Windows.Forms;
  9. using System.Text.RegularExpressions;
  10. using Controls.Properties;
  11. namespace Controls
  12. {
  13. public delegate void DValueChanged(double value);
  14. public partial class CNumericUpDown : UserControl
  15. {
  16. public CNumericUpDown()
  17. {
  18. InitializeComponent();
  19. nud_value.Text = Value.ToString();
  20. }
  21. /// <summary>
  22. /// 值改变事件
  23. /// </summary>
  24. public event DValueChanged ValueChanged;
  25. /// <summary>
  26. /// 点击一下值的变化量
  27. /// </summary>
  28. private decimal _incremeent = 1;
  29. public decimal Incremeent
  30. {
  31. get { return _incremeent; }
  32. set { _incremeent = value; }
  33. }
  34. /// <summary>
  35. /// 小数位数
  36. /// </summary>
  37. private int _decimalPlaces = 0;
  38. public int DecimalPlaces
  39. {
  40. get { return _decimalPlaces; }
  41. set
  42. {
  43. _decimalPlaces = value;
  44. nud_value.DecimalPlaces = value;
  45. }
  46. }
  47. /// <summary>
  48. /// 最小值
  49. /// </summary>
  50. private decimal _minValue = 0;
  51. public decimal MinValue
  52. {
  53. get { return _minValue; }
  54. set
  55. {
  56. _minValue = value;
  57. nud_value.Minimum = value;
  58. }
  59. }
  60. /// <summary>
  61. /// 最大值
  62. /// </summary>
  63. private decimal _maxValue = 100;
  64. public decimal MaxValue
  65. {
  66. get { return _maxValue; }
  67. set
  68. {
  69. _maxValue = value;
  70. nud_value.Maximum = value;
  71. }
  72. }
  73. /// <summary>
  74. /// 值
  75. /// </summary>
  76. private double _value = 0;
  77. public double Value
  78. {
  79. get
  80. {
  81. return _value;
  82. }
  83. set
  84. {
  85. _value = value;
  86. nud_value.Text = value.ToString();
  87. }
  88. }
  89. private void btn_add_MouseEnter(object sender, EventArgs e)
  90. {
  91. try
  92. {
  93. btn_add.BringToFront();
  94. if (nud_value.Value < MaxValue)
  95. {
  96. btn_add.FlatAppearance.MouseDownBackColor = Color.Gray;
  97. btn_add.FlatAppearance.MouseOverBackColor = Color.DarkGray;
  98. btn_add.Image = Resources.blueAdd;
  99. }
  100. else
  101. {
  102. btn_add.FlatAppearance.MouseDownBackColor = Color.White;
  103. btn_add.FlatAppearance.MouseOverBackColor = Color.White;
  104. }
  105. }
  106. catch { }
  107. }
  108. private void btn_add_MouseLeave(object sender, EventArgs e)
  109. {
  110. btn_add.Image = Resources.grayAdd;
  111. }
  112. private void btn_sub_MouseEnter(object sender, EventArgs e)
  113. {
  114. try
  115. {
  116. btn_sub.BringToFront();
  117. if (nud_value.Value >= MinValue)
  118. {
  119. btn_sub.FlatAppearance.MouseDownBackColor = Color.Gray;
  120. btn_sub.FlatAppearance.MouseOverBackColor = Color.DarkGray;
  121. btn_sub.Image = Resources.blueSub;
  122. }
  123. else
  124. {
  125. btn_sub.FlatAppearance.MouseDownBackColor = Color.White;
  126. btn_sub.FlatAppearance.MouseOverBackColor = Color.White;
  127. }
  128. }
  129. catch { }
  130. }
  131. private void btn_add_Click(object sender, EventArgs e)
  132. {
  133. try
  134. {
  135. if (nud_value.Value + Incremeent <= MaxValue)
  136. nud_value.Text = (nud_value.Value + Incremeent).ToString();
  137. if (nud_value.Value >= MaxValue)
  138. {
  139. btn_add.FlatAppearance.MouseDownBackColor = Color.White;
  140. btn_add.FlatAppearance.MouseOverBackColor = Color.White;
  141. btn_add.Image = Resources.grayAdd;
  142. }
  143. }
  144. catch { }
  145. }
  146. private void btn_sub_Click(object sender, EventArgs e)
  147. {
  148. try
  149. {
  150. if (nud_value.Value + Incremeent > MinValue)
  151. nud_value.Text = (nud_value.Value - Incremeent).ToString();
  152. if (nud_value.Value <= MinValue)
  153. {
  154. btn_sub.FlatAppearance.MouseDownBackColor = Color.White;
  155. btn_sub.FlatAppearance.MouseOverBackColor = Color.White;
  156. btn_sub.Image = Resources.graySub;
  157. }
  158. }
  159. catch { }
  160. }
  161. private void nud_value_ValueChanged(object sender, EventArgs e)
  162. {
  163. Value = (double)nud_value.Value;
  164. if (ValueChanged != null)
  165. ValueChanged(Value);
  166. }
  167. private void UserControl1_Leave(object sender, EventArgs e)
  168. {
  169. lbl_line.Height = 1;
  170. lbl_line.BackColor = Color.Gray;
  171. }
  172. private void UserControl1_Enter(object sender, EventArgs e)
  173. {
  174. lbl_line.Height = 2;
  175. lbl_line.BackColor = Color.FromArgb(18, 150, 219);
  176. }
  177. private void btn_sub_MouseLeave(object sender, EventArgs e)
  178. {
  179. btn_sub.Image = Resources.graySub;
  180. }
  181. }
  182. }