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();
    }
Другие вопросы по тегам