1

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

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

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

我可能只是在属性中设置了一些不正确的东西......比如 with AllowPromptAsInputorTextMaskFormat或其他一些属性,以允许这样做。

此外,我不想使用空格作为“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;
}
4

1 回答 1

4

你需要这一行:

        maskedTextBox.ResetOnSpace = false;

这是一个有点奇怪的功能。MSDN 说要使用

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

于 2011-12-01T04:32:17.550 回答