2009-09-11 3 views
0

Я установить свойство MaxLength текстового поля в моих окнах формы приложения на 10свойства TextBox

Я наполнение текстового поля на чтение из файла. Однако, если строка чтения, содержащая более 10 символов, текстовое поле все еще заполняется. Но когда я вручную пытаюсь ввести строку, она отлично работает (то есть не допускает ввода более 10 символов).

Почему существует разница между этими двумя типами поведения? Как я могу заполнить текстовое поле из файла и все еще иметь свойство MaxLength для работы?

Спасибо, Viren

ответ

4

Из TextBoxBase.MaxLengthProperty спецификации:

В коде вы можете установить для свойства Text значение, имеющее длину, большую, чем значение, указанное свойством MaxLength. Это свойство влияет только на текст, введенный в элемент управления во время выполнения.

Другими словами, вы должны ограничить количество текста в коде при извлечении из источника данных.

Для примера:

string text = "The quick blue smurf jumped over the brown fox."; 
textBox1.Text = text.Substring(0, textBox1.MaxLength); 
0

Вы должны ограничить его программно. Это просто способ, которым браузеры обрабатывают HTML. К сожалению :(

К сожалению, HTML спецификации не дает каких-либо указаний по этому вопросу (что я могу найти), поэтому производители браузеров осели на это поведение.

http://www.w3.org/TR/html401/interact/forms.html#h-17.4

+0

Вопрос касается приложения Windows Forms, а не html. Хотя, разрешение похоже (почти идентично :) –

+0

ДА Асаф. Мне жаль, что я забыл упомянуть приложение C# Windows Form GUI. Виноват. В любом случае, похожее на то, что указано в Metro Smurf – zack

0

В самом худшем случае , вы могли бы попытаться ограничить данные до 10 символов, когда являются обязательными для текстового поля:

txtMyTextbox.Text = Left(myData, 10) 
1

Он никогда не мудро полностью полагаться на мгновенной проверке значений - вы всегда должны проверить окончательную стоимость, а также. Например, я часто встречал людей, использующих события KeyUp/KeyDown/KeyPress, чтобы запретить различные символы, а затем забыл, что люди регулярно используют copy-and-paste (что отрицает предполагаемую проверку).

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