【问题标题】:NumericUpDown ValueChanged event not working on entering valuesNumericUpDown ValueChanged 事件在输入值时不起作用
【发布时间】:2013-12-25 23:50:36
【问题描述】:

使用键盘上的数字输入值时不会激活事件。它仅在您使用向上和向下箭头时激活。我想要的是,它必须像文本框 textchanged 事件一样在每次键盘敲击时激活。

我尝试了几件事,但用户必须按 Enter 才能激活事件。我不想那样。

它必须与文本框事件相同。有任何想法吗 ?或者其他工具?

【问题讨论】:

    标签: winforms numericupdown


    【解决方案1】:

    NumericUpDown 控件在以下情况下触发值更改事件

    • 使用您提到的控件的向上/向下箭头时。
    • 使用键盘输入更改值后控件失去焦点时。
    • 在键盘上使用向上/向下箭头键时。

    您可以使用 KeyPress 事件来代替 ValueChanged,该事件会在每次键盘击键时触发。(但请记住,此事件只会在键盘数字键按下时触发)

    private void numericUpDown1_KeyPress(object sender, KeyPressEventArgs e)
    {
    
    }
    

    【讨论】:

    • 谢谢,我不知道按键对象。我将按键事件与值更改相结合,因此它解决了我的问题。我将添加我组合的解决方案作为答案。
    • 我结合了这些事件,但它不能正常工作。我还发现按键事件对 numericUpDown 造成了困扰。它通过更改 numericUpDown 上字母顺序的焦点来更改值。
    • @OzanAyten 你想在 ValueChanged 事件中做什么?你有什么逻辑?为什么要使用 NumericUpDown 控件?你不能使用文本框吗?您还可以阻止用户在文本框中输入非数字字符。
    • 我将使用它来输入两位小数的货币值。我仅出于视觉原因使用 numericUpDown。当您比较文本框和 numericupdown 时。第一眼你就会知道在哪里输入数值。
    • 我不想失去对内容的轻松访问。比如,复制/粘贴值。使用键盘轻松更改值等。此外,数字差异很大(0,01 到 99999,99 等)。
    猜你喜欢
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多