繁体   English   中英

C#中的动态文本框验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM