MaskedTextBox не показывает начальные символы
У меня есть C# DotNet Windows Application Form
в моем приложении есть два MaskedTextBox и они показывают разные значения.
Свойство Маска 1
- Шрифт: Microsoft Sans Serif. Стандартный размер 16pt.
- ПРАВО НА ЛЕВЫЙ: НЕТ
- ВЫРАВНИВАНИЕ ТЕКСТА: ВЛЕВО
- МАСКА: >&&&&&&&&&
- ШИРИНА: 100
- ВЫСОТА: 31
- Текст: пепельный патидар
Собственность Маска 2
- Шрифт: Microsoft Sans Serif. Стандартный размер 16pt.
- ПРАВО НА ЛЕВЫЙ: НЕТ
- ВЫРАВНИВАНИЕ ТЕКСТА: ВЛЕВО
- МАСКА:
- ШИРИНА: 100
- ВЫСОТА: 31
- Текст: пепельный патидар
1-й MaskedTextBox имеет Mask, а 2-й не Mask, остальные свойства одинаковы.
Случай 1
при установке маска и значение отображаются как "HISH_PAT" в виде текстового поля MASK 1.(как показано на рисунке).Дело 2
когда не устанавливается, маска и значение отображаются как "ЯСЕНЬ P" в виде текстового поля MASK 2 (как показано на рисунке).
Я хочу показать значение, как "ASHISH P", как текстовое поле MASK 2 (как показано на рисунке). Когда Маска установлена, но я не хочу изменять ширину MaskedTextBox.
Как решить это?
2 ответа
Я просто немного поиграл с MaskedTextBox
свойства, и это выглядит как поведение по умолчанию элемента управления и связано с Width
, Поэтому, когда длина отображаемого текста превышает пропорциональную ширине элемента управления, отображается текст по направлению к концу.
Мне удалось использовать maskedTextBox.Select
свойство вручную переместить на 1-й символ с приведенной ниже строкой кода;
maskedTextBox1.Select(0, 1);
Вышеуказанная строка выбирает первый символ элемента управления, который позволяет показать начало введенного текста / выделения. Код должен быть вызван из maskedTextBox1.Leave
событие. Если ваше приложение отображает некоторые данные в начале приложения / экрана, то те же самые данные должны вызываться из Form.Load
событие также.
Попробуйте это, только скопируйте и вставьте, он прекрасно работает для меня... изменить метку MTB на самом деле...
private void maskedTextBox_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
this.Text = "Error: " +
e.RejectionHint.ToString() +
"; position: " +
e.Position.ToString();
}