Шаг 141.
Microsoft Visual C++ 2010. Язык С/С++.
Компоненты Windows Forms. Компонент TextBox. Некоторые свойства
На этом шаге мы рассмотрим некоторые свойства этого компонента.
Свойства компонента, отображенные в окне Properties (Свойства), показаны на рисунке 1.
Рис.1. Свойства компонента TextBox
Рассмотрим некоторые из них.
- AcceptsReturn - показывает, будет ли нажатие клавиши Enter в многострочном режиме этого компонента создавать
новую строку текста (значение свойства равно True) или активизируется кнопка по умолчанию для формы (значение свойства равно False).
Если значение свойства равно False (принято по умолчанию), то пользователь должен нажимать комбинацию
клавиш Ctrl+Enter, чтобы организовывалась новая строка в многострочном режиме ввода.
Если для формы не существует кнопки по умолчанию, то нажатие клавиши Enter всегда будет создавать новую
текстовую строку, независимо от значения свойства AcceptsReturn.
Кнопка по умолчанию для формы задается ее свойством AcceptButton которое не отображается в окне
Properties (Свойства). Эта кнопка будет автоматически срабатывать, когда пользователь нажмет клавишу Enter. Наличие такого свойства позволяет
конструировать действия по умолчанию. Если это свойство не определять, то такой кнопки не будет и тогда станет действовав правило:
нажатие клавиши Enter всегда будет создавать новую текстовую строку, независимо от значения свойства AcceptsReturn.
- AcceptsTab - показывает, приведет ли нажатие клавиши Tab при многострочном режиме ввода к появлению кода этой клавиши
в строке (вместо стандартной реакции на нажатие клавиши Tab - перемещению фокуса ввода на очередной по значению свойства
TabIndex компонент).
Если значение свойства AcceptsTab равно False, то нажатие клавиши Tab приведет к перемещению фокуса на очередной компонент,
если значение равно True, то чтобы переместитьь фокус на очередной компонент, надо будет нажать комбинацию клавиш
Ctrl+Tab, иначе нажатие Tab приведет к вставке символа табуляции в строку.
- AutoCompleteCustomSource - это свойство совместно со свойством
AutoCompleteMode и AutoCompleteSource обеспечивает автоматическое пополнение или подсказку с выбором из списка для вводимых строк,
служит контролю ввода, т. к. в TextBox могут вводиться различного рода данные: URL, адреса, имена файлов, команды.
Свойства AutoCompleteMode (способ автоматического пополнения) AutoCompleteSource (источник, т. е.
откуда берутся данные автоматического пополнения) должны работать вместе. В частности, если из выпадающего списка свойства
AutoCompleteSource выбрать значение CustomSource, то можно в качестве источника данных использовать
свойство AutoCompleteCustomSource - оно позволяет открыть специальный редактор, с помощью которого можно задавать строки данных.
Без значения AutoCompleteSource, равного CustomSource, это свойство использовать нельзя. Следует заметить, что
TextBox должен быть обязательно в однострочном режиме.
Приведем пример использования этих свойств. Расположим на форме компонент TextBox и в обработчике события Load формы пропишем такие строки, устанавливающие указанные свойства:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
this->textBox1->AutoCompleteCustomSource->AddRange(gcnew cli::array
< System::String^ >(4) {L"Кузнецов",
L"Иванов", L"Петров", L"Кустов"});
this->textBox1->AutoCompleteMode =
System::Windows::Forms::AutoCompleteMode::SuggestAppend;
this->textBox1->AutoCompleteSource =
System::Windows::Forms::AutoCompleteSource::CustomSource;
}
В результате после запуска приложения получим следующий результат (рисунок 2).
Рис.2. Автозаполнение поля
- HideSelection - задает, остается ли визуальная индикация выделенного текста, когда фокус ввода перемещается на другой компонент
(True - выделенный текст не меняет подсветки, False - подсветка исчезает по выделении другого компонента).
- Lines - с помощью этого свойства можно задавать строки (через открываемое диалоговое окно), выводить строки и, естественно, вводить
строки. Все, что задано в этом свойстве, попадает в свойство Text и наоборот.
- Multiline - задает режим многострочного ввода (мы его задали другим способом - открыли вспомогательное меню на самом компоненте).
- PasswordChar - если мы хотим, чтобы вводимые в поле TextBox символы не высвечивались, а заменялись
неким другим символом, как это происходит при вводе пароля, то в это свойство надо ввести значение такого символа (например, звездочку).
Но при этом значение свойства Multiline должно быть False.
- ReadOnly - определяет, может ли пользователь менять текст в поле копонента: при значении этого свойства True - не может, при
значении False - может.
- ScrollBars - этим свойством можно воспользоваться при многострочном режиме, когда строки не помещаются в отведенное
пространстве TextBox (можно ввести полосы прокрутки). Какие полосы вводить и надо ли их вводить, можно
выбрать из выпадающего списка свойства.
- None - без прокруток (по умолчанию);
- Horizontal - создает горизонтальную прокрутку при длине строки, превышающей ширину текстового поля;
- Vertical - создает вертикальную прокрутку, если строки не помещаются в текстовом поле;
- Both - создает вертикальную и горизонтальную прокрутку.
При этом необходимо следить за свойством WordWrap - горизонтальная полоса прокрутки может не появиться.
- ShortcutsEnabled - дает возможность применять установленные в среде клавишные комбинации быстрого вызова:
- Ctrl+Z;
- Ctrl+E;
- Ctrl+C;
- Ctrl+Y;
- Ctrl+X;
- Ctrl+BackSpace;
- Ctrl+V;
- Ctrl+Delete;
- Ctrl+A;
- Shift+Delete;
- Ctrl+L;
- Shift+Insert;
- Ctrl+R.
- Text - через это свойство вводится/выводится одна строка текста.
- TextAlign - свойство позволяет выравнивать текст в поле компонента, выбирая способ выравнивания из выпадающего списка
(текст может располагаться слева, справа или по центру поля).
- UseSystemPasswordChar - задает возможность объявления вводимого символа в качестве парольного по
умолчанию. Если такой символ введен, то любой символ, вводимый в свойство PasswordChar, будет проигнорирован.
- WordWrap - задает возможность автоматического переноса символов к началу следующей строки, т. е.
строку, не умещающуюся в поле ввода, можно продолжить (не нажимая, естественно, при этом на клавишу Enter).
На следующем шаге мы рассмотрим события этого компонента.
Предыдущий шаг
Содержание
Следующий шаг