ここで説明されているように、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";
}
}