我的班级中有一个NumericUpDown变量。最小值和最大值设置如下:
myNumericUpDown.Maximum = 9999;
myNumericUpDown.Minimum = 0;
这可以防止旋转框超过 9999 或低于 0。
我遇到的问题是,当用户在文本框中键入时,他们可以键入任何大于或小于的任意数字Maximum或Minimum。
NumericUpDown类中是否有一个属性可以控制文本框的最小值和最大值?还是我必须编写一个回调程序来检查这种情况?
我的班级中有一个NumericUpDown变量。最小值和最大值设置如下:
myNumericUpDown.Maximum = 9999;
myNumericUpDown.Minimum = 0;
这可以防止旋转框超过 9999 或低于 0。
我遇到的问题是,当用户在文本框中键入时,他们可以键入任何大于或小于的任意数字Maximum或Minimum。
NumericUpDown类中是否有一个属性可以控制文本框的最小值和最大值?还是我必须编写一个回调程序来检查这种情况?
如果您在表单设计视图的属性窗格中设置属性,它将为您处理。如果用户输入 12000 并且您的最大值为 9999,则一旦控件失去焦点,控件就会下降到最大值 9999。它与负值相同。一旦控件失去焦点,它将自动变为 0。
如果您不希望用户能够输入超过 4 位数字,那么您可以只观看 KeyDown 事件。
/// <summary>
/// Checks for only up to 4 digits and no negatives
/// in a Numeric Up/Down box
/// </summary>
private void numericUpDown1_KeyDown(object sender, KeyEventArgs e)
{
if (!(e.KeyData == Keys.Back || e.KeyData == Keys.Delete))
if (numericUpDown1.Text.Length >= 4 || e.KeyValue == 109)
{
e.SuppressKeyPress = true;
e.Handled = true;
}
}