限制MaskedTextBox掩码中的最小和最大长度(字符输入)

时间:2016-03-28 20:20:46

标签: c# c#-4.0

我需要配置MaskedTextBox的assets属性以获取符合以下条件的密码:

  • 最少4个字母数字字符
  • 最多15个字母数字字符

我已经尝试将掩码设置为字符串“aaaa”,但这不起作用

2 个答案:

答案 0 :(得分:0)

根据掩码中的MSDN(see here),a用于可选的字母数字字符,A用于所需的字母数字字符。

因此,以下面具适用于您:

AAAAaaaaaaaaaaa

编辑:

因此经过测试后发现这不起作用,因为用户仍然可以输入短于4个字符的文本。因此,我所知道的唯一真正的解决方案是使用Validating事件来执行实际验证。

以下是Validating事件的此类事件处理程序实现的示例。我还添加了一个空文本框的附加检查,以防止用户在没有输入任何值时在文本框中“锁定”。

private void maskedTextBox1_Validating_1(object sender, CancelEventArgs e) {
    // Stop when empty (avoiding the user getting "locked" in the box)
    if (maskedTextBox1.Text.Length == 0) return;

    // Validate text, cancel when not valid and show error to user
    if (maskedTextBox1.Text.Length < 4 || maskedTextBox1.Text.Length > 15) {
        e.Cancel = true;
        MessageBox.Show("Please enter a text of 4 - 15 characters length!");
    }
}

答案 1 :(得分:0)

这有点晚了,但我想回答这个问题。

对于输入可选和所需位数的字母数字限制,您可以使用AAAaaaaa。要验证,只需检查MaskCompleted和/或MaskFull属性。 MaskCompleted将检查是否输入了所有 required 字符,MaskFull将检查是否输入了所有 required 可选字符。你自己不需要检查长度。

所以你可以做AAAAaaaaaaaaaa,然后检查MaskCompleted是否为真。如果是这样,他们输入至少4个字符。 MaskFull会告诉你他们是否总共输了15个。