Текстовые области
5.4. ТЕКСТОВЫЕ ОБЛАСТИ
Как правило, окна содержат различные элементы интерфейса, которые обеспечивают отображение, ввод и редактирование текстовых величин. Некоторые из них представляют собой комбинацию области текстового ввода с элементами управления других типов.
В текстовой области не используются текстовые метки в качестве элементов управления. Тем не менее, вы можете дополнить ее статическим текстом, поясняющим назначение текстовой области и обеспечивающим индикацию ситуации, когда область недоступна. Если статический текст состоит из нескольких слов, при его написании целесообразно использовать рассмотренные ранее правила использования заглавных букв. Статический текст может также быть использован для определения клавиши доступа к текстовой области. При этом необходимо помнить, что при нажатии клавиши доступа фокус ввода должен устанавливаться на текстовую область, с которой метка связана, а не на сам статический текст. Вы можете также обеспечить клавиатурную навигацию в текстовой области, используя клавишу <Таb> и клавиши перемещения курсора.
В тех случаях, когда текстовая область используется для ввода ограниченного множества возможных значений (например, только чисел из заданного диапазона), следует тут же подтверждать правильность ввода или, наоборот, игнорировать неподходящие символы (возможно, выдавая пользователю соответствующее сообщение).
5.4.1. ТЕКСТОВЫЕ ПОЛЯ
Текстовое поле (TextBox) иногда называемое также полем редактирования или полем ввода — это прямоугольная область, в которой пользователь может вводить или редактировать текст (рис. 5.24). Она может содержать одну или несколько строк. Как правило, граница текстового поля обозначается явным образом, хотя на самом деле это необходимо только в тех случаях, когда текстовое поле расположено на панели инструментов или во вторичном окне.
Для стандартного текстового поля поддерживаются такие операции редактирования, как вставка и удаление символов, а также выделение фрагмента текста. Хотя индивидуальный шрифт для текстового поля обычно не поддерживается, при необходимости такая настройка может быть реализована.
В некоторых случаях текстовое поле может использоваться для вывода на экран текста, который не подлежит редактированию и предназначен только для чтения. Если такое ограничение устанавливается для стандартного текстового поля, система автоматически изменяет цвет его фона, чтобы указать пользователю на данную особенность.
Рекомендуемые материалы
Рис. 5.24. Стандартное текстовое поле
Для текстового поля поддерживается стандартная техника навигации и непрерывного выбора. Если текстовое поле содержит только одну строку, то для него отображается только горизонтальная полоса прокрутки; если же оно содержит более одной строки, то поле снабжается как горизонтальной, так и вертикальной полосами прокрутки.
Вы можете произвольным образом ограничить множество символов, разрешенных для ввода в данное текстовое поле. Кроме того, вы можете реализовать автовыход, установив фиксированную длину вводимых строк; это означает, что при вводе последнего символа в текстовое поле фокус ввода автоматически переходит на другой элемент управления. Например, вы можете определить шестисимвольный автовыход, чтобы облегчить ввод почтового индекса, или три текстовых поля с двухсимвольным автовыходом каждое, предназначенные для ввода даты (число, месяц, год). Хотя авто-выход обладает очевидными достоинствами, не рекомендуется злоупотреблять им, поскольку автоматический перенос фокуса ввода может вызвать замешательство у начинающего пользователя. Ограничьте применение автовыхода ситуациями, связанными с вводом большого объема данных (например, при заполнении экранных форм).
5.4.2. МНОГОСТРОЧНОЕ ТЕКСТОВОЕ ПОЛЕ
Многострочное текстовое поле (Rich-Text Box) (рис. 5.25) обеспечивает те же основные операции по работе с текстом, что и стандартное текстовое поле. Дополнительно для многострочного текстового поля поддерживается возможность индивидуальной настройки шрифта (тип шрифта, размер, цвет, начертание) для каждого символа, а также выбор формата параграфа (способ выравнивания, отступы, нумерация и т.д.). Кроме того, для него реализованы функции печати содержимого и вставки объектов с использованием технологии OLE.
Рис. 5.25. Многострочное текстовое поле
5.4.3. КОМБИНИРОВАННЫЙ СПИСОК
Комбинированный список (Combo Box) представляет собой объединение текстового поля и списка, как показано на рис. 5.26.
Текстовое поле и связанный с ним список имеют подчиненное отношение. По мере того, как текст набирается в текстовом поле, список перемещается в соответствии с вводимыми символами. И наоборот, когда пользователь выбирает пункт в списке, он автоматически помещается в текстовое поле и может быть изменен.
Интерфейс комбинированного списка представляет собой сочетание интерфейсов каждого из образующих его компонентов (стандартного текстового поля и списка), за исключением того, что клавиши <Вверх> и <Вниз> обеспечивают перемещение только по списку (от одного пункта к другому), а клавиши <Влево> и <Вправо> действуют исключительно в текстовом поле.
Рис. 5.26. Комбинированный список
5.4.4. ВЫПАДАЮЩИЙ КОМБИНИРОВАННЫЙ СПИСОК
Выпадающий комбинированный список (Drop-down Combo Box) объединяет свойства текстового поля и выпадающего списка (рис. 5.27). Данный элемент интерфейса является более компактным по сравнению с предыдущим и может использоваться в целях экономии пространства окна, но требует от пользователя дополнительных действий, чтобы открыть список.
В закрытом состоянии выпадающий комбинированный список похож на выпадающий список, за исключением того, что текстовое поле является интерактивным. Это означает, что пользователь может изменить содержимое текстового поля, и при нажатии клавиши <Enter> новое значение будет воспринято приложением.
Список открывается, когда пользователь нажимает кнопку меню, расположенную возле текстового поля. Повторное нажатие кнопки приводит к выбору пункта и закрытию списка.
Для повышения эффективности работы пользователей с выпадающим комбинированным списком рекомендуется создать для него метку в виде статической текстовой области и определить соответствующую клавишу доступа. Вы можете также разрешить использование клавиши <Таb> и клавиш управления курсором для навигации по блоку.
Рис. 5.27. Выпадающий комбинированный список (в закрытом и открытом состоянии)
Если фокус ввода находится на блоке (либо в тестовом поле, либо на панели списка), то при нажатии клавиш <Вверх> или <Вниз> (а также при использовании комбинаций клавиш <Вверх>+<Аlt> и <Вниз>+<Аlt>), список должен открываться.
Если список открыт и фокус ввода находится либо на нем, либо в текстовом поле, то при нажатии клавиши <Таb>, клавиши доступа, или комбинаций клавиш <Вверх>+<Аlt> и <Вниз>+<Аlt> список закрывается и фокус ввода переходит на другой элемент управления. Когда список закрывается, сохраните сделанный в нем выбор, если пользователь не нажимает кнопку Отменить. Клавиша <Esc> также закрывает список без сохранения нового выбора.
Если список открыт, взаимосвязь между текстовым полем и списком реализуется так же, как и в рассмотренном ранее комбинированном списке: когда пользователь набирает текст в текстовом поле, происходит перемещение списка в направлении соответствующего пункта; если же пользователь выбирает пункт в списке, то выбранный пункт отображается в текстовом поле и становится доступным для редактирования.
5.4.5. ДИСКРЕТНОЕ ТЕКСТОВОЕ ПОЛЕ
Дискретное текстовое ноле (Spin Box) представляет собой текстовое поле, которое может принимать только ограниченный набор дискретных упорядоченных значений, образующих замкнутую последовательность. Данный элемент интерфейса является комбинацией текстового поля и специального элемента управления, который состоит из двух взаимосвязанных кнопок (он известен также как элемент реверсивного управления— Up-Down Control). В русскоязычных изданиях этот комбинированный элемент именуется по-разному: и «спин», и «спиннер», и просто «счетчик». Последний вариант является наименее удачным, поскольку его текстовое поле может содержать не только числовую, но и тестовую информацию (рис. 5.28.). Однако и пополнять все удлиняющиеся ряды "броузеров", "баннеров" и "дигитайзеров" тоже не очень хочется. Кроме того, необходимо учитывать, что элемент реверсивного управления может использоваться в сочетании с окном любого типа.
Рис 5.28. Дискретное текстовое поле
Когда пользователь щелкает ЛКМ в текстовом поле или на одной из кнопок, фокус ввода устанавливается в текстовом поле. После этого пользователь может либо непосредственно набрать текстовое значение, либо использовать кнопки, чтобы увеличить или уменьшить отображаемое в поле значение. Способ изменения зависит от конкретной реализации данного элемента.
При использовании дискретного текстового поля следует учитывать два основных момента.
Во-первых, далеко не во всех ситуациях шаг изменения значения, отображаемого в текстовом поле, будет очевидным для пользователя (например, при установке даты, представленной в форме <год/месяц/число>).
Во-вторых, изменение значения должно выполняться в обе стороны (и при уменьшении, и при увеличении) с одинаковым шагом.
Полезно также предусмотреть возможность циклического перехода между граничными значениями диапазона.
Вообще лучше всего сопроводить дискретное текстовое поле дополнительной информацией относительно особенностей его использования в каждом конкретном случае.
Чтобы предоставить пользователю возможность прямого клавиатурного доступа к дискретному текстовому полю, создайте для него (поля) метку в виде статической текстовой области и определите связанную с ней клавишу доступа. Вы можете также поддержать клавиатурный доступ на основе клавиши <Таb> и клавиш управления курсором. Если фокус ввода установлен на дискретном текстовом поле, пользователь может изменять текущее значение, нажимая клавиши <Вверх> или <Вниз>.
С помощью единственного элемента реверсивного управления может выполняться редактирование нескольких связанных текстовых полей, например, для установки времени, выраженного через часы, минуты и секунды. Кнопки влияют только на то текстовое поле, на котором в данный момент установлен фокус ввода.
5.4.6. СТАТИЧЕСКИЕ ТЕКСТОВЫЕ ОБЛАСТИ
Статические текстовые области (Static Text Fields) используются, как правило, для отображения информации, предназначенной только для чтения. В отличие от нередактируемого текста, который может отображаться в обычном текстовом поле, статический текст нельзя выбрать (выделить цветом). Тем не менее, ваше приложение может изменить статический текст, чтобы отразить изменение состояния связанного с ним элемента интерфейса. Например, вы можете использовать статический текст, чтобы отобразить текущий маршрут директория или информацию о состоянии объекта (номер страницы, время и дату создания и т.д.).
Рис. 5.29 иллюстрирует применение корректируемой статической текстовой области.
Рис. 5.29. Статическая текстовая область
Вы можете также использовать статические текстовые области в качестве меток или пояснительной информации для других элементов интерфейса. Использование статической текстовой области в качестве метки позволяет определить клавишу доступа для элемента интерфейса, с которым она связана. В этом случае необходимо, чтобы фокус ввода переходил на этот элемент интерфейса, а не на статическую область. Не забывайте также включать двоеточие в конце текста. Этот символ не только помогает пользователю увязать текст с элементом интерфейса, он также используется экранными утилитами обзора.
Обратите внимание на лекцию "9 Общественное потребление".
5.4.7. ПОЛЕ НАЗНАЧЕНИЯ ГОРЯЧИХ КЛАВИШ
Поле назначения горячих клавиш, известных также как клавиши-акселераторы (Shortcut key Input Control) — это специальный тип текстового поля, предназначенный для того, чтобы обеспечить пользователю возможность назначения (переопределения) горячих клавиш или комбинации таких клавиш (рис. 5.30). Используйте это поле только в тех случаях, когда вы предоставляете пользователю право модифицировать по его усмотрению назначение клавиш-акселераторов, поддерживаемых вашим приложением. Поскольку горячие клавиши непосредственно инициируют команду, они обеспечивают более эффективный интерфейс для общих или часто используемых действий.
![]() | |||
![]() |
Рис. 5.30. Поле назначения горячих клавиш
Для данного типа текстового поля существует возможность определить запрещенные клавиши или комбинации клавиш, с тем чтобы гарантировать корректное назначение клавиш пользователем. Предусмотрена также возможность автоматической модификации вводимой информации в тех случаях, когда пользователь пытается использовать запрещенную клавишу.
Подобно большинству текстовых полей, данный элемент по умолчанию не имеет собственной метки, поэтому целесообразно дополнять его статической текстовой областью, чтобы обеспечить его идентификацию и назначить соответствующую клавишу доступа. С целью поддержки клавиатурного доступа может также использоваться клавиша <ТаЬ>.