【问题标题】:how to validate numericupdown when value change (and not lost focus)如何在值更改时验证 numericupdown(而不是失去焦点)
【发布时间】:2013-06-28 16:42:03
【问题描述】:

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

如果我把我的代码放在事件ValueChanged 中,当焦点丢失时这项工作

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

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

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

【问题讨论】:

  • 你的帖子有点混乱。你能把你的代码贴出来吗?
  • 是的,请发布一段孤立的代码,最好是我们可以轻松复制的代码 D:

标签: c# winforms visual-studio-2010 numericupdown


【解决方案1】:

您可以使用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!");
       }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多