假设我的 NumericUpDown 具有 Maximum = 99
和 Minimum = -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/