用到了控件的 KeyPress 和 KeyUp事件。
KeyPress 中控制输入“点、空格,负号”;
KeyUp 中防止删空,以及防止输入超过最大值或最小值 。
private void nudStart_KeyPress(object sender, KeyPressEventArgs e)
{
numericUpDownKeyPress(sender, e);
}
private void nudStart_KeyUp(object sender, KeyEventArgs e)
{
numericUpDownKeyUp(nudStart, sender, e);
}
private void numericUpDownKeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '.')
{
e.Handled = true;
}
else if (e.KeyChar == '-')
{
e.Handled = true;
}
else if (e.KeyChar == ' ')
{
e.Handled = true;
}
}
private void numericUpDownKeyUp(NumericUpDown numericUpDown, object sender, KeyEventArgs e)
{
UpDownBase UpDowns = (UpDownBase)numericUpDown;
if (UpDowns.Text == "")
{
numericUpDown.Text = numericUpDown.Value.ToString();
}
else
{
int value = Convert.ToInt32(UpDowns.Text);
if (value > numericUpDown.Maximum)
{
value = Convert.ToInt32(numericUpDown.Maximum);
numericUpDown.Value = value;
numericUpDown.Text = numericUpDown.Value.ToString();
}
else if (value < numericUpDown.Minimum)
{
value = Convert.ToInt32(numericUpDown.Minimum);
numericUpDown.Value = value;
numericUpDown.Text = numericUpDown.Value.ToString();
}
}
}