winform的MaskedTextBox可以允许空格吗?

时间:2011-12-01 00:01:52

标签: .net winforms maskedtextbox

我有一个动态创建的表单,其中添加了一些maskedtextbox并设置了它们的属性(如下面的代码所示)。

如果需要10个字符,代码需要验证输入的文本长度是否为10.但是允许用户在开头或结尾输入空格以组成这10个字符。

maskedtextbox似乎没有保留那些,或者至少我设置属性的方式不保留它们(也许b / c我有'C'设置?)

我可能只是在属性中设置了错误的内容...例如使用AllowPromptAsInputTextMaskFormat或其他属性,以允许此操作。

此外,我不想使用空格作为'PromptChar',因为我希望用户看到要输入的字符数。

private void SetupMaskedTextBox(int allowedChars)
{
    const char promptCharSquare = '\u25A1';
    maskedTextBox.PromptChar = promptCharSquare;
    string msk = null;
    for (int i = 0; i < allowedChars; i++) {
        msk += "C";
    }
    maskedTextBox.Mask = msk;
    maskedTextBox.AllowPromptAsInput = true;
    maskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
}

1 个答案:

答案 0 :(得分:4)

你需要这一行:

        maskedTextBox.ResetOnSpace = false;

这是一个奇怪的功能。 MSDN says to use

  

如果空格输入字符导致当前可编辑位置,则为true   在要重置的掩码中;否则, false表示它是   作为普通输入字符处理。默认值为true。