Как создать textbox в visual studio
Доброго времени суток! В этом уроке я кратко расскажу о таком элементе графического интерфейса, как поле ввода текста (TextBox). Расскажу о самых важных, на начальном этапе, свойствах, событиях и методах данного контрола.
И так, поля ввода текста предназначены для получения от пользователя тестовых данных. Таким образом, этот элемент интерфейса нужен скорее для ввода информации, но может быть использован и для её вывода.
Контрол TextBox расположен на панели инструментов в группе «Стандартные элементы управления» (или «Common Controls» в англоязычной версии Visual Studio), как показано на рисунке ниже.
Элемент TextBox на панели элементов Visual Studio
По традиции, начну с описаний основных свойств элемента.
Основные свойства
Name — задает уникальное имя для поля ввода текста (специфическое свойство, необходимо, для работы с элементом из кода).
BorderStile — задает рамку вокруг поля ввода, может иметь одно из представленных в таблице ниже значений.
Значение | Краткое описание |
---|---|
None | Рамки вокруг поля ввода нет |
FixedSingle | Простая рамка из одинарной линии |
Fixed3D | 3D рамка вокруг поля ввода |
Enabled — разрешает или запрещает доступ к элементу, если указать значение true, то поле ввода будет доступно для пользователя (он сможет вводить текст), значение false — наоборот, запрещает доступ.
MaxLenght — задает максимально допустимое для ввода количество символов.
Multiline — разрешает или запрещает многострочный режим ввода, если значение установлено в true, то поле ввода считается многострочным, если false — однострочным.
PasswordChar — если задать свойству какой-нибудь символ, то введенные пользователем символы, визуально (и только визуально, а не по факту), будут заменяться на него (например, при вводе пароля, введенные символы отображаются как звездочки, т.е. «*»).
ReadOnly — если установлено в true, то редактировать текст в поле ввода, пользователю нельзя, если установлено в false текст доступен для редактирования.
Text — предназначено для установки текста в поле ввода или получения введенного пользователем текста.
TextAlign — устанавливает выравнивание введенного текста, возможные значения представлены в таблице ниже.
Значение | Краткое описание |
---|---|
Left | Текст выравнивается по левому краю |
Right | Текст выравнивается по центру |
Center | Текст выравнивается по правому краю |
Visible — позволят скрыть текстовое поле, если установлено в false. Для отображения элемента снова, нужно установить этому свойству значение true.
Основные методы
AppendText — добавляет текст (указанный в качестве аргумента) к уже введенному в поле тексту.
Clear — очищает поле ввода (удаляет весь текст).
Copy — копирует выделенный текст в буфер обмена.
Cut — вырезает выделенный текст из буфера обмена.
Past — вставляет текст из буфера обмена в поле ввода (в позицию, в которую установлен курсор).
Hide — скрывает поле ввода.
Show — показывает поле ввода (скрытое до этого).
А вот пример окна с различными полями ввода текста:
Пример окна с различными полями ввода текста
Основные события данного контрола в этом уроке я описывать не стал, так как необходимость в их использовании появляется на более продвинутых уровнях программирования.
А в следующем уроке, будет практика использования элементов интерфейса, который были описаны в этом и предыдущих уроках!
Для ввода и редактирования текста предназначены текстовые поля - элемент TextBox. Так же как и у элемента Label текст элемента TextBox можно установить или получить с помощью свойства Text.
По умолчанию при переносе элемента с панели инструментов создается однострочное текстовое поле. Для отображения больших объемов информации в текстовом поле нужно использовать его свойства Multiline и ScrollBars . При установке для свойства Multiline значения true, все избыточные символы, которые выходят за границы поля, будут переноситься на новую строку.
Кроме того, можно сделать прокрутку текстового поля, установив для его свойства ScrollBars одно из значений:
None : без прокруток (по умолчанию)
Horizontal : создает горизонтальную прокрутку при длине строки, превышающей ширину текстового поля
Vertical : создает вертикальную прокрутку, если строки не помещаются в текстовом поле
Both : создает вертикальную и горизонтальную прокрутку
Автозаполнение текстового поля
Элемент TextBox обладает достаточными возможностями для создания автозаполняемого поля. Для этого нам надо привязать свойство AutoCompleteCustomSource элемента TextBox к некоторой коллекции, из которой берутся данные для заполнения поля.
Итак, добавим на форму текстовое поле и пропишем в код события загрузки следующие строки:
Режим автодополнения, представленный свойством AutoCompleteMode , имеет несколько возможных значений:
None : отсутствие автодополнения
Suggest : предлагает варианты для ввода, но не дополняет
Append : дополняет введенное значение до строки из списка, но не предлагает варианты для выбора
SuggestAppend : одновременно и предлагает варианты для автодополнения, и дополняет введенное пользователем значение
Перенос по словам
Чтобы текст в элементе TextBox переносился по словам, надо установить свойство WordWrap равным true . То есть если одно слово не умещается на строке, то но переносится на следующую. Данное свойство будет работать только для многострочных текстовых полей.
Ввод пароля
Также данный элемент имеет свойства, которые позволяют сделать из него поле для ввода пароля. Так, для этого надо использовать PasswordChar и UseSystemPasswordChar .
Свойство PasswordChar по умолчанию не имеет значение, если мы установим в качестве него какой-нибудь символ, то этот символ будут отображаться при вводе любых символов в текстовое поле.
Свойство UseSystemPasswordChar имеет похожее действие. Если мы установим его значение в true , то вместо введенных символов в текстовом поле будет отображаться знак пароля, принятый в системе, например, точка.
Событие TextChanged
Из всех событий элемента TextBox следует отметить событие TextChanged , которое срабатывает при изменении текста в элементе. Например, поместим на форму кроме текстового поля метку и сделаем так, чтобы при изменении текста в текстовом поле также менялся текст на метке:
Элемент предназначен для вывода текстовой информации, для создания простых надписей:
Ключевым свойством здесь является свойство Text , которое задает текстовое содержимое. Причем в случае
С помощью таких свойств, как FontFamily, TextDecorations и др., мы можем настроить отображение текста. Однако мы можем задать и более сложное форматирование, например:
Элементы Run представляют куски обычного текста, для которых можно задать отдельное форматирование.
Для изменения параметров отображаемого текста данный элемент имеет такие свойства, как LineHeight , TextWrapping и TextAlignment .
Свойство LineHeight позволяет указывать высоту строк.
Свойство TextWrapping позволяет переносить текст при установке этого свойства TextWrapping="Wrap" . По умолчанию это свойство имеет значение NoWrap , поэтому текст не переносится.
Свойство TextAlignment выравнивает текст по центру (значение Center), правому (Right) или левому краю (Left):
Для декорации текста используется свойство TextDecorations , например, если TextDecorations="Underline" , то текст будет подчеркнут.
Если нам вдруг потребуется перенести текст на другую строку, то тогда мы можем использовать элемент LineBreak :
TextBox
Если TextBlock просто выводит статический текст, то этот элемент представляет поле для ввода текстовой информации.
Он также, как и TextBlock, имеет свойства TextWrapping , TextAlignment и TextDecorations .
С помощью свойства MaxLength можно задать предельное количество вводимых символов.
По умолчанию, если вводимый текст превышает установленные границы поля, то текстовое поле растет, чтобы вместить весь текст. Но визуально это не очень хорошо выглядит. Поэтому, как и в случае с TextBlock, мы можем перенести непомещающийся текст на новую строку, установив свойство TextWrapping="Wrap".
Чобы переводить по нажатию на клавишу Enter курсор на следующую строку, нам надо установить свойство AcceptsReturn="True" .
Также мы можем добавить полю возможность создавать табуляцию с помощью клавиши Tab, установив свойство AcceptsTab="True"
Для отображения полос прокрутки TextBox поддерживает свойства VerticalScrollBarVisibility и НоrizontalScrollBarVisibility :
Возможно, при создании приложения нам потребуется сделать текстовое поле недоступным для ввода (на время в зависимости от условий или вообще), тогда для этого нам надо установить свойство IsReadOnly="True" .
Для выделения текста есть свойства SelectionStart , SelectionLength и SelectionText . Например, выделим программно текст по нажатию кнопки:
Обработчик нажатия кнопки:
Проверка орфографии
TextBox обладает встроенной поддержкой орфографии. Чтобы ее задействовать, надо установить свойство SpellCheck.IsEnabled="True" . Кроме того, по умолчанию проверка орфографии распространяется только на английский язык, поэтому, если приложение заточено под другой язык, нам надо его явным образом указать через свойство Language :
Метка (Label)
Главной особенностью меток является поддержка мнемонических команд-клавиш быстрого доступа, которые передают фокус связанному элементу. Например,
Теперь, нажав на клавишу "п", мы переведем фокус на связанное текстовое поле. При вызове приложения подчеркивание не отображается, чтобы отображать подчеркивание, надо нажать на клавишу Alt. Тогда чтобы перевести фокус на связанное текстовое поле необходимо будет нажать сочетание Alt + "п". Если не предполагается использование клавиш быстрого доступа, то для вывода обычной текста вместо меток лучше использовать элемент TextBlock.
PasswordBox
Элемент предназначен для ввода парольной информации. По сути это тоже текстовое поле, только для ввода символов используется маска. Свойство PasswordChar устанавливает символ маски, отображаемый при вводе пароля. Если это свойство не задано, то по умолчанию для маски символа используется черная точка. Свойство Password устанавливает парольную строку, отображаемую по умолчанию при загрузке окна приложения.
RichTextBox
Для вывода текстового содержимого, насыщенного форматированием, графикой, предназначен RichTextBox. Можно даже сказать, что он выводит не просто текст, а документы с более сложным форматированием, чем обычный TextBox. Более подробно о нем, а также как на его основе создать простой текстовый редактор, мы поговорим в главе, посвященной документам.
Элемент MaskedTextBox по сути представляет обычное текстовое поле. Однако данные элемент позволяет контролировать ввод пользователя и проверять его автоматически на наличие ошибок.
Чтобы контролировать вводимые в поле символы, надо задать маску. Для задания маски можно применять следующие символы:
0 : Позволяет вводить только цифры
9 : Позволяет вводить цифры и пробелы
L : Позволяет вводить только буквенные символы
? : Позволяет вводить дополнительные необязательные буквенные символы
A : Позволяет вводить буквенные и цифровые символы
. : Задает позицию разделителя целой и дробной части
, : Используется для разделения разрядов в целой части числа
: : Используется в временных промежутках - разделяет часы, минуты и секунды
/ : Используется для разделения дат
$ : Используется в качестве символа валюты
Чтобы задать маску, надо установить свойство Mask элемента. Найдя это свойство в окне свойств(Porperties), нажмем на него и нам отобразится окно для задания одного из стандартных шаблонов маски. В частности мы можем выбрать Phone number (Телефонный номер), который подразумевает ввод в текстовое поле только телефонного номера:
Теперь при запуске мы сможем ввести в текстовое поле только цифры, получив в итоге телефонный номер.
Теперь сделаем свою маску. Например, создадим маску для ввода инициалов имени и отчества и фамилий ограниченной длины в текстовое поле. Для этого присвоим свойству Mask значение L.L.L. . Тогда ввод в текстовое поле будет выглядеть следующим образом:
Данный элемент также представляет нам ряд свойств, которые можно использовать для управления вводом. Так, свойство BeepOnError при установке значения true подает звуковой сигнал при введении некорректного символа.
Свойство HidePromptOnLeave при установке в true при потери текстовым полем фокуса скрывает, указанные в PromptChar
Свойство PromptChar указывает на символ, который отображается в поле на месте ввода символов. По умолчанию стоит знак подчеркивания.
Свойство AsciiOnly при значении true позволяет вводить только asci-символы, то есть символы из диапазона A-Z и a-z.
Для создания приложения Windows Forms в Visual Studio 2019:
Выполнить: Разработайте приложение, которое вычисляет сумму трех любых чисел при нажатии на кнопку.
Пример выполнения:
[Название проекта: Lesson_4Lab4 , название файла формы frmSumma.cs ]
private void btnExit_Click(object sender, EventArgs e) < this.Close(); // эта строка - ваш введенный код >
- площадь треугольника по трем сторонам;
- площадь прямоугольника по двум сторонам;
- площадь треугольника по двум сторонам и углу между ними;
- процент от числа.
[Название проекта: Lesson_4ExTask0 , название формы L4ExTask0.cs ]
Лабораторная работа 21_2.
Элемент управления ListBox (список), свойства и методы списка, программирование с ветвлением
Измените свойство Backcolor (Задний фон) текстового поля при помощи элемента управления ListBox – список
Пример выполнения:
[Название проекта: Lesson_4Lab5 , название файла формы lesson4Lab5.cs ]
System – пространство имен;
Drawing — пространство имен, обеспечивающее доступ к функциональным возможностям графического интерфейса
Событие SelectedIndexChanged происходит при выделении различных пунктов в элементе управления списка данных между отправками к серверу.
Контрольное задание.
Добавьте ListBox для изменения ширины (атрибут Width ) текстового поля: минимальная — 20, средняя – 50, максимальная — 100.
Примечание: использовать свойство текстового поля Size , и System.Drawing.Size(значение ширины, значение высоты)
[Название проекта: Lesson_4ExTaskLab5 , название формы L4ExTaskLab5.cs ]
(необязательно для выполнения) Лабораторная работа 21_3.
Разработайте приложение, которое изменяет задний фон текстового поля из предыдущего занятия, реализовав эту функцию с помощью меню формы
Целью данного урока является ознакомление с элементом управления MenuStrip при работе в visual c++ с формами.
Пример выполнения:
Читайте также: