1

ユーザーが英数字のみを入力できるマスクされたテキストボックスがあります。

しかし、入力する文字の量を無制限にするにはどうすればよいので、マスクに制限されずに任意の数の文字を入力できますか?

        nameTextBox.ValidatingType = typeof(System.Char);
        nameTextBox.TypeValidationCompleted += new        TypeValidationEventHandler(nameTextBox_TypeValidationCompleted);
4

1 に答える 1

0

ここで説明されているように、MaskedTextBox は MaxLength プロパティをサポートしていません。特定の長さのマスクを指定する必要があります (たとえば、任意の 5 文字の場合は「LLLLL」)。任意の長さが必要な場合は、代わりに通常の TextBox を使用し、Validating と TextChanged のイベント ハンドラを接続する必要があります。ユーザーにフィードバックを提供するために、TextBox の横にラベルを追加して、有効な文字に関する情報と、それが現在有効かどうかを示すことができます。

簡単な解決策として、これを試すことができます:

private void TextBox_TextChanged(object sender, EventArgs e)
{
    var originalText = myMaskedTextBox.Text;
    var parsedText = Regex.Replace(myMaskedTextBox.Text, "[^a-z_A-Z]", "");

    if (originalText == parsedText)
        labelInfo.Text = "Valid string";
    else
    {
        myMaskedTextBox.Text = parsedText;
        labelInfo.Text = "Only alpha-numeric characters please";    
    }
}
于 2013-03-10T20:08:27.777 に答える