使用C#winform应用程序的NumericUpDown控件。
将Maximun值设置为99.但是当我输入99以上的值时,例如:555,它允许我在值555中键入(key_press事件),并且只有在我离开控件时它才会变回最大值(99)。我需要的是,不允许用户键入超过99的值。此外,默认行为“向上和向下操作”值不应受此影响。我该怎么做呢?
答案 0 :(得分:1)
只是一个简单的想法:
public class StrictNumericUpDown : NumericUpDown
{
protected override void OnTextBoxTextChanged(object source, EventArgs e)
{
base.OnTextBoxTextChanged(source, e);
if (Value > Maximum)
{
Value = Maximum;
}
}
}
答案 1 :(得分:1)
使用
KEYUP
事件。
或
((TextBox)numericUpDown1.Controls[1]).MaxLength = 2;
//正如汉斯所说。
答案 2 :(得分:0)
您可以使用KeyDown事件并在触发时验证该值。
答案 3 :(得分:0)
当我们在c#中使用了numericupdown控件时,如果要限制控件中的数字长度限制(例如2,3,4 ... etc)以限制limit-1位数字,请使用keypress,keydown / up事件。使用ctrl + shift +向左或向右箭头键组合控制值,然后按数字键输入新值,即可正常工作,但是当您选择所有数字(长度限制)时,新的数字键将无法进入数字上下控制处理图片下方的事件:
KeyDown event code snippet with issue
因此,@ Hans Passant建议使用类型转换解决方法来解决此问题。
在formload事件或InitializeComponent()
方法中添加此行。
((TextBox)numericUpDown1.Controls\[1\]).MaxLength = 4;
要正确处理以下代码段中的4位数字长度限制:
KeyDown event code snippet with Solution
谢谢!汉斯·帕桑特