Выбрать главу
Листинг 3.21

private void Form1_Load(object sender, EventArgs e) {

 // Устанавливаем нужный вид

 listView1.View = View.Details;

 // Выделяем всю строку при выделении любого элемента

 listView1.FullRowSelect = true;

 ColumnHeader columnHeader1 = new ColumnHeader();

 ColumnHeader columnHeader2 = new ColumnHeader();

 ColumnHeader columnHeader3 = new ColumnHeader();

 columnHeader1.Text = "Фамилия";

 columnHeader2.Text = "Имя";

 columnHeader3.Text = "E-mail";

 listView1.Columns.Add(columnHeader1);

 listView1.Columns.Add(columnHeader2);

 listView1.Columns.Add(columnHeader3);

 ListViewItem Contact1 = new ListViewItem("Иванов");

 Contact1.SubItems.Add("Иван");

 Contact1.SubItems.Add("ivan@ivanov.ru");

 ListViewItem Contact2 = new ListViewItem("Петров");

 Contact2.SubItems.Add("Петр");

 Contact2.SubItems.Add("peter@petrov.ru");

 ListViewItem Contact3 = new ListViewItem("Сидоров");

 Contact3.SubItems.Add("Арнольд");

 Contact3.SubItems.Add("goat@sidorov.ru");

 listView1.Items.Add(Contact1);

 listView1.Items.Add(Contact2);

 listView1.Items.Add(Contact3);

}

На рис. 3.12 показан внешний вид приложения со списком в виде таблицы.

Рис. 3.12. Пример работы с элементом ListView

В полной версии .NET Framework элемент управления ListView поддерживает свойство MultiSelect, позволяющее одновременно выбрать несколько элементов из списка. Версия .NET Compact Framework не поддерживает данное свойство, поэтому пользователь может выбрать только один элемент.

Элемент TabControl

Элемент управления TabControl очень удобен при создании интерфейсов для устройств с малыми размерами экрана, так как он позволяет создавать многостраничные диалоговые окна. Вкладки, реализуемые этим элементом, имеют ярлычки, на которых отображаются заголовки страниц. И пользователь может легко переключаться между страничками, просто щелкая по этим ярлычкам.

В устройствах Pocket PC вкладки располагаются в нижней части окна. Следует обратить внимание на то, что элемент TabControl всегда располагается в верхнем левом углу контейнера. Например, если поместить TabControl на форму, то он появится в ее верхнем левом углу. Если же нужно изменить расположение этого элемента, то надо поместить его на панель, которая является контейнером. При перемещении панели будет перемещаться и TabControl.

Элемент TabControl следует расположить на форме. У него по умолчанию будут созданы вкладки tabPage1 и tabPage2. Если нужно добавить новую вкладку, то следует щелкнуть на маленькой стрелке в верхней части элемента TabControl и выбрать пункт меню Add Tab (рис. 3.13).

Рис. 3.13. Добавление новой закладки в элементе TabControl

В результате у элемента TabControl появится новая закладка, которую можно настроить в соответствии с потребностями разработчика. Также программист может воспользоваться услугами редактора TabPage Collection Editor для добавления новых закладок. В этом случае надо выбрать элемент TabControl в дизайнере формы, найти свойство TabPages и нажать кнопку редактирования этого свойства. В результате будет открыт редактор закладок. Для управления закладками можно также выделить TabControl, щелкнуть на нем правой кнопкой мыши и выбрать пункты контекстного меню Add Tab или Remove Tab.

Для определения текущей вкладки используется свойство SelectedIndex. При изменении данного свойства инициируется событие SelectedIndexChanged, что иллюстрирует код, приведенный в листинге 3.22.

Листинг 3.22

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) {

 switch (this.tabControl1.SelectedIndex) {

 case 0:

  MessageBox.Show("Вы выбрали первую вкладку");

  break;

 case 1:

  MessageBox.Show("Вы выбрали вторую вкладку");

  break;

 case 2:

  MessageBox.Show("Вы выбрали третью вкладку");

  break;

 }

}

Элемент TreeView

Элемент управления TreeView позволяет представить данные в иерархическом виде. Именно в этом виде отображается структура дисковой системы в левой части рабочего окна программы Проводник 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 не так уж много, но наиболее часто используемые члены класса приведены в следующем списке.