2011-12-01 67 views
1

我有一个动态创建的表单,其中添加了一些maskedtextboxes和它们的属性集(如下面的代码所示)。Winform的MaskedTextBox是否允许空格?

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

的MaskedTextBox中似乎并没有保留这些,或者至少我的方式有设置的属性不会让他们(也许二/三我有“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; 
} 

回答

4

您需要这条线:

 maskedTextBox.ResetOnSpace = false; 

这是一个有点古怪的功能。 MSDN says to use

真,如果空间输入字符会导致在掩模被重置当前编辑位置 ;否则,为false,表示它将作为正常输入字符处理为 。默认值是true。