Winform的MaskedTextBox是否允许空格?
问题描述:
我有一个动态创建的表单,其中添加了一些maskedtextboxes和它们的属性集(如下面的代码所示)。Winform的MaskedTextBox是否允许空格?
如果需要10个字符,则代码需要验证输入的文本长度是否为10.但是允许用户在开头或结尾输入空格来组成这10个字符。
的MaskedTextBox中似乎并没有保留这些,或者至少我的方式有设置的属性不会让他们(也许二/三我有“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;
}
答
您需要这条线:
maskedTextBox.ResetOnSpace = false;
这是一个有点古怪的功能。 MSDN says to use:
真,如果空间输入字符会导致在掩模被重置当前编辑位置 ;否则,为false,表示它将作为正常输入字符处理为 。默认值是true。