【问题标题】:MaskedTextBox for ID number with leading zeros带有前导零的 ID 号的 MaskedTextBox
【发布时间】:2020-02-21 02:03:14
【问题描述】:

我创建了一个 WinForm,其中包含员工或学生 ID 号的字段。所有 ID 号均为 9 位数字,前导 2 个零(例如 001234567)。如何配置文本掩码以验证用户的输入并要求前导零但防止输入全为零?我可以使用常规文本框来实现这一点,但更改为 MaskedTextBox 以防止将 Windows Emoji 键盘表情符号等特殊字符作为输入。

【问题讨论】:

  • 使用int.TryParse 验证他们输入了一个正整数。如果是我,如果数字有效,我会为他们添加前导零。
  • @ourmandave 我不确定我是否做错了,但使用 int.TryParse 检查正整数有同样的问题,即允许值全为零(例如 000000000)。我需要防止用户输入全零。
  • 如果他们输入全零,TryParse 将返回 True,但您可以测试 'out' 值是否 >0。

标签: c# winforms validation visual-studio-2019 maskedtextbox


【解决方案1】:

您可以将掩码设置如下

\0\00000000

这将确保您在其余 7 位数字之前有两个前导零文字

【讨论】:

  • 看起来这确实给了我需要的前导零,但它并不能阻止输入全为零。这是我目前拥有的代码,以您的建议为掩码:if (this.Text == "000000000" || (string.IsNullOrWhiteSpace(this.Text))) { MessageBox.Show("This field does not contain a valid Student or Employee ID number. Please try again.", "Whoops!", MessageBoxButtons.OK, MessageBoxIcon.Error); }
【解决方案2】:

您可以使用以下代码确保领导者为“00”并停止输入

为零。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }



    private void Form1_Load(object sender, EventArgs e)
    {
        maskedTextBox1.Mask = "00/0000000";

        maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected);
    }
    void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
         if (!maskedTextBox1.Text.StartsWith("00")) 
        {
            MessageBox.Show("You must input start with 00");
        }
        else if (maskedTextBox1.Text == "00/0000000") 
        {
            MessageBox.Show("You can not input all number is 0");//
        }
        else if (maskedTextBox1.MaskFull)   
        {
             MessageBox.Show("You cannot enter any more data into the date field. Delete some characters in order to insert more data.");
        }
    }
}

测试结果:

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 2021-01-24
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2012-10-09
    • 1970-01-01
    相关资源
    最近更新 更多