Домой C# Автоматическая подгонка TextBox под длину вводимого текста: Справочник по C#

Автоматическая подгонка TextBox под длину вводимого текста: Справочник по C#

618
0


      Данная инструкция поможет вам подогнать размер TextBox под ширину находящегося в нем текста. Создайте проект Windows Form и добавьте компонент TextBox.

Добавьте компонент Timer на форму.

      Выберете добавленный компонент Timer, сделайте клик правой клавишей по нему и выберете из появившемся контекстного меню, пункт «Свойства» (1). Выберете свойство «Enabled» и выставьте значение True (2). Данное свойство активирует компонент, при запуске программы. Перейдите в события компонента (3).

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

Вы перейдете в автоматически созданный метод timer1_Tick.

Добавьте в него следующий код:

//Инкапсулируем поверхность рисования GDI+. Этот класс нельзя унаследовать.
Graphics g = Graphics.FromHwnd(this.Handle);
//берем присвоенный текст и текущий фон
SizeF f = g.MeasureString(textBox1.Text, textBox1.Font);
//Задаем ширину по тексту
textBox1.Width = (int)(f.Width);

      Так же в данном способе есть недочеты, если в компоненте нет изначально заданного текста, то после запуска текстовое поле будет иметь нулевую длину и вы не сможете ввести текст. В методе Form1() после инициализации компонентов (InitializeComponent();) добавьте строчку кода:

textBox1.Text = "


789";

      Запустите приложение, нажав на клавиатуре клавишу F5. Теперь по мере ввода текста, компонент будет растягиваться на ширину текста.

      Реализуем второй вариант. Перейдите в конструктор формы. Выберете компонент TextBox и сделайте клик левой клавиши мыши по нему. В появившемся контекстном меню выберете пункт «Свойства».

      После открытия панели свойств компонента, перейдите в его события и найдите TextChanged. Данное событие возникает, когда в компоненте происходит изменение свойства Text. Сделайте двойной клик левой клавишей мыши по данному свойству.

Перейдя в листинг формы, скопируйте код из таймера в новое событие textBox1_TextChanged.

      Перед запуском программы, в свойстве Enabled таймера выставьте False. Запустите приложение, нажав на клавиатуре клавишу F5. Если вы сделали все правильно, то получите такой же результат работы, как и при работе с таймером. 
      На ваше рассмотрение было предложено два варианта реализации подгонки размера TextBox под текст расположенный в нем.

ЧИТАТЬ ТАКЖЕ:  Устанавливаем иконку UAC Shield на кнопку: Справочник по C#

Ссылка для скачивания примера: Яндекс.Диск

Автоматическая подгонка TextBox под длину вводимого текста: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь