Справочник по C#

    Исходники по языку программирования CSharp

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

    /
    /
    /
    133 Views


          Данная инструкция поможет вам подогнать размер 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 под текст расположенный в нем.

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

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

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9