1

いくつかのマスクされたテキストボックスが追加され、それらのプロパティが設定された動的に作成されたフォームがあります(以下のコードのように)。

10文字が必要な場合、コードは入力されたテキストの長さが10であるかどうかを検証する必要があります。ただし、ユーザーはこれらの10文字を構成するために最初または最後にスペースを入力できます。

マスクされたテキストボックスはそれらを保持していないようです、または少なくとも私がプロパティを設定した方法ではそれらを保持していません(多分b / c私は「C」を設定していますか?)

これを可能にするために、プロパティに誤って設定されている可能性があります...withAllowPromptAsInputTextMaskFormatその他のプロパティなど。

また、入力する文字数をユーザーに確認してもらいたいので、「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を指定して、通常の入力文字として処理されることを示します。デフォルトはtrueです。

于 2011-12-01T04:32:17.550 に答える