[英]dynamic textbox validation in C#
我的文本框仅接受从0到255(1字节)的数值,我如何防止用户输入数字> 255 ...输入第三个数字后,它应该通过验证。超出文本框并显示消息。非常感谢您的帮助。
private void cor_o_gain_Validating(object sender, CancelEventArgs e)
{
try
{
int entered = int.Parse(cor_o_gain.Text);
if (entered > 255)
{
e.Cancel = true;
MessageBox.Show("Enter the number between 0 and 255");
}
}
catch (FormatException)
{
// e.Cancel = true;
}
}
您可能会考虑不这样做,因为这很烦人。 如果用户键入“ 30”并在光标位于3之前时改变了主意,则可以键入“ 40”,然后按两次Delete键。 您的应用会向他发出蜂鸣声,并显示一个消息框。
如果您必须在输入文字时进行验证,请考虑在文字旁边放置一个标签,然后将其更新为“无效输入”或类似内容。 如其他地方提到的那样,在按键,按键或按下按键时进行操作。
查看主要事件; 按键,按键,按键等
您应该改用numericUpDown控件,并将最小值和最大值设置为0到255之间。
System.Windows.Forms.NumericUpDown n = new System.Windows.Forms.NumericUpDown();
n.Minimum = 0;
n.Maximum = 255;
我会说重新考虑您的实施。 我使用过这样设计的软件,这很烦人。 随着时间的流逝,它很可能会激怒您的用户,并且没有真正的好处。
仍然,如果您绝对必须在键入过程中停止用户(再次询问您是否应该),那么您需要一个诸如Keypress之类的“动作更快”的事件。
虽然有很多“温特勒”实现。 一种选择(不是唯一的一种选择)是更改文本框的背景颜色并使可见的错误消息发出警报,但不会阻止用户输入无效。 这允许用户在尝试更改文本时更改文本而不会被消息框打断(不被消息框打断)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.