2013-03-10 2 views
1

У меня есть текстовое поле с маскировкой, в котором пользователю разрешено вводить буквенно-цифровые буквы.маскированный текстовый блок с неограниченной маской

Но как я могу получить количество букв, которые будут введены неограниченно, поэтому любое количество букв может быть введено и не ограничено маской?

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

вы хотите сказать, вы должны быть в состоянии ввести небуквенные буквы тоже ?? –

+0

@Manish нет, я это подтверждено только буквы, но хотят, чтобы иметь возможность ввести различное количество букв так, например AAAAA на первом submition затем AAAAAAAAAAA на следующий submition – user2154328

+0

так бы вы разместили на проверку на длину Aswell? ? перекрестная проверка того, достаточно ли MaxLength TextBox достаточно большой –

ответ

0

MaskedTextBox не поддерживает свойство MaxLength, как описано here. Вы должны указать маску с определенной длиной, например, «LLLLL» для любых 5 символов. Если вы хотите произвольную длину, вам, вероятно, придется использовать обычный 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";  
    } 
} 
+0

спасибо alot есть где-нибудь ясно, я могу найти, как это сделать – user2154328

+0

Добавлен небольшой пример. Вам нужно будет добавить дополнительный код, чтобы создать приятный Gui, но код будет удалять любые не буквенно-цифровые символы динамически. Позиция каретки будет помещена в начало TextBox, поэтому вы можете добавить некоторую логику, чтобы запомнить старую позицию и сбросить, если и были удалены незаконные символы. –

+0

Добавлен еще один код, он также будет обрабатывать любой вложенный текст. Удачи! –

Смежные вопросы