我有一个动态创建的表单,其中添加了一些maskedtextbox并设置了它们的属性(如下面的代码所示)。
如果需要10个字符,代码需要验证输入的文本长度是否为10.但是允许用户在开头或结尾输入空格以组成这10个字符。
maskedtextbox似乎没有保留那些,或者至少我设置属性的方式不保留它们(也许b / c我有'C'设置?)
我可能只是在属性中设置了错误的内容...例如使用AllowPromptAsInput
或TextMaskFormat
或其他属性,以允许此操作。
此外,我不想使用空格作为'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;
}
答案 0 :(得分:4)
你需要这一行:
maskedTextBox.ResetOnSpace = false;
这是一个奇怪的功能。 MSDN says to use:
如果空格输入字符导致当前可编辑位置,则为true 在要重置的掩码中;否则, false表示它是 作为普通输入字符处理。默认值为true。