c# - 如何在 NumericUpDown 中保留有效值而不是分配最大值?

标签 c# winforms events user-interface numericupdown

假设我的 NumericUpDown 具有 Maximum = 99Minimum = -99 以及初始值 = 23。如果用户将焦点设置到此控件并输入 1(现在是 123),它会将其值更改为 99。 如何保持 23 而不是将值更改为允许的最大值?

我试图捕获 KeyDown 和 KeyPress,但在此事件期间值没有改变。我还尝试实现 this question 中解释的解决方法, 但没有成功。验证事件仅在离开控制权时发生。如果用户输入大于最大值或小于最小值,我需要简单地忽略它。

更新。我正在使用 WinForms

最佳答案

使用外部全局属性,如 private int iTextBox { get;放; } 并使用 OnTextChange 事件 来查看数字是大于 99 还是小于 -99。

OnTextChange:

{
       int newValue = int.Parse(textBox1.Text);
       if (newValue > Maximum)
              textBox1.Text = iTextBox;
       if (newValue < Minimum)
              textBox1.Text = iTextBox;

       iTextBox = int.Parse(textBox1.Text);
}

关于c# - 如何在 NumericUpDown 中保留有效值而不是分配最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12142727/

相关文章:

c# - LINQ 查询(按项目组分组)

c# web 服务不返回结果

c++ - WS_EX_LAYERED 窗口不接收鼠标事件

jquery - jquery 的 click() 事件

javascript - 检测 Javascript 事件类型

c# - Screen.AllScreen 未提供正确的显示器计数

c# - 在 ASP.NET 中单击链接按钮时如何在 Bootstrap Modal 中显示数据

c# - nUnit 3 C# - TestCaseSource - TestCaseData - 测试是否抛出异常

c# - 如何在 DateTimePicker 上显示小时和分钟

c# - C# 中的代码编辑器