}
Элемент ImageListимеет свойство ImageSize, которое задает размеры хранимых изображений. Перед загрузкой картинки в графическое поле можно установить требуемые размеры изображения с помощью данного свойства, как показано в листинге 3.20.
Листинг 3.20
private void butImgList_Click(object sender, EventArgs e) {
// изменяем размеры картинки
imageList1.ImageSize = new System.Drawing.Size(160, 120);
// загружаем картинку с измененными размерами
picTest.Image = imageList1.Images[0];
}
На рис. 3.11 показан внешний вид приложения, в котором для работы с изображениями применяются все три описанных варианта.
Рис. 3.11. Пример работы с элементом PictureBox
Элемент управления ListViewпохож на элемент ListBox, но вместо обычного текста данный элемент может показывать изображения. Фактически, правая часть рабочего окна Проводника в Windows XP является типичным примером использования этого органа управления. Элементы в ListViewмогут отображаться в виде таблицы, списка, а также как группа крупных и мелких значков. За способ отображения содержимого отвечает свойство View. Значение Detailsпозволяет отображать содержимое в виде таблицы, значение Listсоздает список, значение LargeIconпозволяет отображать элементы списка в виде больших пиктограмм, а значение SmallIconотображает их как маленькие пиктограммы.
В режиме Detailsэлемент управления ListViewпозволяет создавать дополнительные столбцы. Их можно добавлять как во время проектирования, так и во время исполнения программы. Пример добавления столбцов во время работы приложения приведен в листинге 3.21.
Листинг 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очень удобен при создании интерфейсов для устройств с малыми размерами экрана, так как он позволяет создавать многостраничные диалоговые окна. Вкладки, реализуемые этим элементом, имеют ярлычки, на которых отображаются заголовки страниц. И пользователь может легко переключаться между страничками, просто щелкая по этим ярлычкам.
В устройствах Pocket PC вкладки располагаются в нижней части окна. Следует обратить внимание на то, что элемент TabControlвсегда располагается в верхнем левом углу контейнера. Например, если поместить TabControlна форму, то он появится в ее верхнем левом углу. Если же нужно изменить расположение этого элемента, то надо поместить его на панель, которая является контейнером. При перемещении панели будет перемещаться и TabControl.
Элемент TabControlследует расположить на форме. У него по умолчанию будут созданы вкладки tabPage1и tabPage2. Если нужно добавить новую вкладку, то следует щелкнуть на маленькой стрелке в верхней части элемента TabControlи выбрать пункт меню Add Tab (рис. 3.13).
Рис. 3.13. Добавление новой закладки в элементе TabControl
Читать дальше