Также можно загрузить изображение из ресурсов приложения. В этом случае надо добавить картинку в проект и для свойства Build Action
задать значение Embedded Resource
. Тогда не придется специально включать изображения в состав инсталлятора. В листинге 3.19 приведен пример, иллюстрирующий добавление изображения из ресурсов.
private void butRes_Click(object sender, EventArgs e) {
// Загружаем из ресурсов
picTest.Image = new Bitmap(Assembly.GetExecutingAssembly().
GetManifestResourceStream("PictureBox_CS.kristina.jpg"));
}
Элемент ImageList
имеет свойство ImageSize
, которое задает размеры хранимых изображений. Перед загрузкой картинки в графическое поле можно установить требуемые размеры изображения с помощью данного свойства, как показано в листинге 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
Элемент управления ListView
похож на элемент ListBox
, но вместо обычного текста данный элемент может показывать изображения. Фактически, правая часть рабочего окна Проводника в Windows XP является типичным примером использования этого органа управления. Элементы в ListView
могут отображаться в виде таблицы, списка, а также как группа крупных и мелких значков. За способ отображения содержимого отвечает свойство View
. Значение Details
позволяет отображать содержимое в виде таблицы, значение List
создает список, значение LargeIcon
позволяет отображать элементы списка в виде больших пиктограмм, а значение SmallIcon
отображает их как маленькие пиктограммы.
В режиме Details
элемент управления ListView
позволяет создавать дополнительные столбцы. Их можно добавлять как во время проектирования, так и во время исполнения программы. Пример добавления столбцов во время работы приложения приведен в листинге 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