2011-12-01 68 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。