using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions; using Controls.Properties; namespace Controls { public delegate void DValueChanged(double value); public partial class CNumericUpDown : UserControl { public CNumericUpDown() { InitializeComponent(); nud_value.Text = Value.ToString(); } /// /// 值改变事件 /// public event DValueChanged ValueChanged; /// /// 点击一下值的变化量 /// private decimal _incremeent = 1; public decimal Incremeent { get { return _incremeent; } set { _incremeent = value; } } /// /// 小数位数 /// private int _decimalPlaces = 0; public int DecimalPlaces { get { return _decimalPlaces; } set { _decimalPlaces = value; nud_value.DecimalPlaces = value; } } /// /// 最小值 /// private decimal _minValue = 0; public decimal MinValue { get { return _minValue; } set { _minValue = value; nud_value.Minimum = value; } } /// /// 最大值 /// private decimal _maxValue = 100; public decimal MaxValue { get { return _maxValue; } set { _maxValue = value; nud_value.Maximum = value; } } /// /// 值 /// private double _value = 0; public double Value { get { return _value; } set { _value = value; nud_value.Text = value.ToString(); } } private void btn_add_MouseEnter(object sender, EventArgs e) { try { btn_add.BringToFront(); if (nud_value.Value < MaxValue) { btn_add.FlatAppearance.MouseDownBackColor = Color.Gray; btn_add.FlatAppearance.MouseOverBackColor = Color.DarkGray; btn_add.Image = Resources.blueAdd; } else { btn_add.FlatAppearance.MouseDownBackColor = Color.White; btn_add.FlatAppearance.MouseOverBackColor = Color.White; } } catch { } } private void btn_add_MouseLeave(object sender, EventArgs e) { btn_add.Image = Resources.grayAdd; } private void btn_sub_MouseEnter(object sender, EventArgs e) { try { btn_sub.BringToFront(); if (nud_value.Value >= MinValue) { btn_sub.FlatAppearance.MouseDownBackColor = Color.Gray; btn_sub.FlatAppearance.MouseOverBackColor = Color.DarkGray; btn_sub.Image = Resources.blueSub; } else { btn_sub.FlatAppearance.MouseDownBackColor = Color.White; btn_sub.FlatAppearance.MouseOverBackColor = Color.White; } } catch { } } private void btn_add_Click(object sender, EventArgs e) { try { if (nud_value.Value + Incremeent <= MaxValue) nud_value.Text = (nud_value.Value + Incremeent).ToString(); if (nud_value.Value >= MaxValue) { btn_add.FlatAppearance.MouseDownBackColor = Color.White; btn_add.FlatAppearance.MouseOverBackColor = Color.White; btn_add.Image = Resources.grayAdd; } } catch { } } private void btn_sub_Click(object sender, EventArgs e) { try { if (nud_value.Value + Incremeent > MinValue) nud_value.Text = (nud_value.Value - Incremeent).ToString(); if (nud_value.Value <= MinValue) { btn_sub.FlatAppearance.MouseDownBackColor = Color.White; btn_sub.FlatAppearance.MouseOverBackColor = Color.White; btn_sub.Image = Resources.graySub; } } catch { } } private void nud_value_ValueChanged(object sender, EventArgs e) { Value = (double)nud_value.Value; if (ValueChanged != null) ValueChanged(Value); } private void UserControl1_Leave(object sender, EventArgs e) { lbl_line.Height = 1; lbl_line.BackColor = Color.Gray; } private void UserControl1_Enter(object sender, EventArgs e) { lbl_line.Height = 2; lbl_line.BackColor = Color.FromArgb(18, 150, 219); } private void btn_sub_MouseLeave(object sender, EventArgs e) { btn_sub.Image = Resources.graySub; } } }