C#中的动态文本框验证

时间:2010-11-11 12:46:36

标签: c# .net validation textbox

我的文本框只取数字值,从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;
        }
    } 

4 个答案:

答案 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这样的“更快速行动”的事件。

虽然有很多“更温和”的实现。一个选项(不是唯一的选项)是更改文本框的背景颜色并使警报可见的错误消息,但不阻止用户输入无效。这允许用户在尝试更改文本时更改文本而不会被中断(通过消息框)。