3

我有一个NumericUpDown并且我需要在值变化(而不是失去焦点)时进行新的计算

如果我在ValueChanged失去焦点时将我的代码放在这个工作中

如果我输入我的代码,KeyPress那么如果数字不是通过键盘输入的(例如复制一个数字并粘贴它)它就不起作用

那么我需要使用什么事件?

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

4

1 回答 1

4

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

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

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

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!");
       }
    }
}
于 2013-06-29T17:51:16.387 回答