编程语言
首页 > 编程语言> > C#-如何在值更改(而不失去焦点)时验证numericupdown

C#-如何在值更改(而不失去焦点)时验证numericupdown

作者:互联网

我有一个NumericUpDown,我需要在值更改(而不是丢失焦点)时进行新的计算

如果我将代码放在事件ValueChanged中,则在失去焦点时会执行此工作

如果我将代码放在KeyPress中,则如果未通过键盘输入数字(例如,复制并粘贴数字),它将无法正常工作

那我需要使用什么事件?

如果这是按键,则我需要连接更多的数字值,并将所有按键转换为字符串并将其转换为十进制,然后进行计算,但是如果按键不是数字(例如退格键),它将不起作用

解决方法:

您可以使用KeyUp事件来检查直接编辑和CTRL V粘贴操作.

然后,您可以收听MouseUp事件以使用鼠标右键(上下文菜单)检查粘贴操作.

在此示例代码中,如果用户输入的数字大于9,则会显示MessageBox:

private void numericUpDown1_KeyUp(object sender, KeyEventArgs e)
{
    if (numericUpDown1.Value >= 10){
       numericUpDown1.Value = 0;
       MessageBox.Show("number must be less than 10!");
    }
}

private void numericUpDown1_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right) {
       if (numericUpDown1.Value >= 10){
           numericUpDown1.Value = 0;
           MessageBox.Show("number must be less than 10!");
       }
    }
}

标签:visual-studio-2010,numericupdown,c,winforms
来源: https://codeday.me/bug/20191123/2065023.html