我的文本框只取数字值,从0到255(1字节),如何阻止用户输入数字> 255 ...输入第3位数字的那一刻它应该验证。现在我的代码验证当你走出文本框并显示消息时。非常感谢。
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;
}
}
答案 0 :(得分:5)
您可能会认为不这样做是因为它很烦人。如果用户键入“30”并在光标位于3之前改变主意,则可以键入“40”然后按两次删除。你的应用会发出哔哔声并显示一个消息框。
如果您在键入时必须验证,请考虑在其文本旁边放置一个标签并将其更新为“无效输入”或其他类似内容。在其他地方提到的按键,键盘或键盘上进行。
答案 1 :(得分:3)
检查关键事件; keypress,keydown,keyup等。
答案 2 :(得分:2)
您应该使用numericUpDown控件,并将min和max值设置为0和255.
System.Windows.Forms.NumericUpDown n = new System.Windows.Forms.NumericUpDown();
n.Minimum = 0;
n.Maximum = 255;
答案 3 :(得分:1)
我想重新考虑你的实施。我使用过这样设计的软件,非常讨厌。随着时间的推移,它可能会让您的用户感到沮丧并且没有任何实际好处。
如果您绝对必须在打字过程中停止用户(如果您应该再次提出问题),那么您需要像Keypress这样的“更快速行动”的事件。
虽然有很多“更温和”的实现。一个选项(不是唯一的选项)是更改文本框的背景颜色并使警报可见的错误消息,但不阻止用户输入无效。这允许用户在尝试更改文本时更改文本而不会被中断(通过消息框)。