Отображение оставшихся символов текстового поля C # - PullRequest
2 голосов
/ 02 ноября 2011

Я просто хотел знать, как отобразить оставшиеся символы в моем текстовом поле, на случай, если ввод пользователя превысил ограничение на число символов.

Например, вот мое текстовое поле:

Введите имя: _ __ _ __ _ __ _ ___ 50 Осталось символов

И когда пользовательский ввод уже содержит 50 символов, он / она больше не сможет ничего вводить в этом текстовом поле. Это возможно? Любая помощь будет оценена. Заранее спасибо.

Ответы [ 4 ]

7 голосов
/ 02 ноября 2011

Сначала вы устанавливаете для свойства MaxLength текстового поля значение 50. Затем необходимо подписаться на событие TextChanged текстового поля, чтобы получать уведомления об изменении текста поля, и вычислятьоставшиеся символы вычитая textBox.MaxLength на textBox.TextLength

1 голос
/ 02 ноября 2011

Вам нужно TextBox 's MaxLength свойство.

Вы можете достичь того, что вы хотите, используя метку в нужном размере вашего текстового поля. Для каждого введенного ключа вы можете обновить заголовок этого ярлыка до $"{textbox1.MaxLength - textbox1.Text.Length()} characters".

0 голосов
/ 02 ноября 2011

Во-первых, это неясно, но похоже, что вы также поместили часть Name: в текстовое поле, которое действительно должно быть в метке. То же самое относится и к оставшимся персонажам.

Что касается расчета оставшихся символов, используйте событие KeyPress текстового поля.

Ваш код для этого события будет примерно таким

private void textBox_KeyPress(object sender, EventArgs e)
{
    var max = 100;
    label.Text = (max - this.Text) + " Characters remaining);
}

Надеюсь, это поможет.

0 голосов
/ 02 ноября 2011

Поместите это в событие изменения текстового поля.

labelForRemainingChars.Caption = txtMyTextBox.MaxLength - txtMyTextBox.TextLength;

РЕДАКТИРОВАТЬ: Это применимо к winforms.

...