позволяет представить данные в иерархическом виде. Именно в этом виде отображается структура дисковой системы в левой части рабочего окна программы Проводник Windows. Основой элемента
TreeView
являются объекты
TreeNode
и
Nodes
. При работе с
TreeView
также широко используется элемент управления
ImageList
, используемый как хранилище изображений для узлов.
Заполнять древовидную структуру можно как на этапе конструирования формы, так и во время выполнения программы. Для создания дерева в дизайнере формы нужно переместить на нее элемент
TreeView
. Затем следует выбрать свойство
Nodes
и запустить редактор
TreeNode Editor
. Кнопка
Add Root
отвечает за создание узлов дерева. Кнопка
Add Child
позволяет добавить дочерний узел к выбранному узлу. Кнопка
Delete
удаляет выбранный узел.
Чтобы задать текст, отображаемый в узлах, можно использовать свойство
Text
. Также в узлах можно использовать изображения, для чего применяется комбинация элемента управления
ImageList
и свойства
SelectedImageList
. Для определения текущего узла используется свойство
SelectedNode
.
На рис. 3.14 показан внешний вид приложения, использующего элемент интерфейса
TreeView
.
Рис. 3.14. Использование элемента TreeView
Элемент InputPanel
Элемент управления
InputPanel
позволяет вводить текстовую информацию при помощи виртуальной клавиатуры или панели распознавания знаков SIP (Soft Input Panel). Так как в полной версии .NET Framework данного элемента нет, то стоит рассмотреть его несколько подробнее.
Как правило, в карманных компьютерах нет клавиатуры, поэтому для ввода данных используется виртуальная клавиатура. В обычном состоянии она неактивна и находится в свернутом состоянии. Чтобы ее активировать, нужно щелкнуть стилусом по значку клавиатуры в нижнем правом углу экрана, где располагается меню или панель инструментов
ToolBar
.
Тогда виртуальная клавиатура появится на экране, и пользователь сможет вводить текст.
Разработчик может программно управлять состоянием клавиатуры. Например, с помощью элемента
InputPanel
можно узнать текущее состояние SIP, возможность ее отображения и деактивации. Свойств и методов у элемента
InputPanel
не так уж много, но наиболее часто используемые члены класса приведены в следующем списке.
□
Bounds
— прямоугольник, определяющий размеры и позицию SIP.
□
VisibleDesktop
— прямоугольная часть экрана, на которой не отображается SIP.
□
Enabled
— возможность работы с SIP.
□
EnabledChanged
— событие, возникающее при изменении состояния SIP.
Свойства
Bounds
и
VisibleDesktop
доступны только для чтения и определяют прямоугольники, по которым можно судить о положении SIP и размерах клиентской области, не занятой SIP. Свойство
VisibleDesktop
определяет прямоугольник, которым ограничена область экрана, не закрытая SIP. Когда виртуальная клавиатура отображается, то условный прямоугольник поднимается от полоски навигации над окном SIP. Когда SIP скрыт, то прямоугольник занимает все пространство экрана.
Свойство
Bounds
описывает размеры и позицию виртуальной клавиатуры, когда она отображается на экране. Причем размеры этого прямоугольника не меняются, даже если виртуальная клавиатура скрыта.
Свойство
Enabled
имеет значение
True
, если виртуальная клавиатура отображается на экране. Значение свойства можно задавать программно, скрывая или отображая клавиатуру.
Если в приложении необходимо использовать элемент
InputPanel
, нужно следить, чтобы он при активации не загородил элементы управления на форме, иначе пользователь просто не сможет ввести данные.
Можно размещать текстовые поля на форме как можно выше, чтобы элемент
InputPanel
не мешал вводить данные. Но помимо этого можно отслеживать состояние виртуальной клавиатуры и при ее отображении передвигать вверх поля для ввода информации. В этом случае чаще всего приходится применять полосы прокрутки. Можно проиллюстрировать такое поведение примером, в котором элемент
InputPanel
будет активироваться, если текстовое поле получит фокус. А когда
TextBox
потеряет фокус, то клавиатура должна исчезнуть. Эта функциональность реализуется кодом, приведенным в листинге 3.23.