Программирование >>  Программирование с использованием ajax 

1 ... 151 152 153 [ 154 ] 155 156 157 ... 396


Прежде чем переходить к переключателям, нужно завершить обеспечение возможностей просмотра, добавив событие Click в кнопку Back. Дважды щелкните на кнопке и поместите в обработчик события следующий код:

private void buttonBack Click(object sender, EventArgs e)

if (folderCol.Count > 1) {

PaintListView(folderCol[folderCol.Count - 2].ToString()); folderCol.RemoveAt(folderCol.Count - 1);

else {

PaintListView (folderCol [0] .ToStringO ) ;

Если коллекция folderCol содержит более одного элемента, значит, мы находимся не в корневом каталоге браузера и нужно вызвать метод PaintListView () с путем к предыдущей папке. Последний элемент в коллекции folderCol - текущая папка. Поэтому мы должны извлечь предпоследний элемент. Затем мы удаляем последний элемент коллекции и делаем новый последний элемент текущей папкой. Если коллекция содержит только один элемент, мы просто вызываем метод PaintListView () с этим элементом.

Теперь остается только обеспечить возможность изменения типа просмотра элемента управления ListView. Дважды щелкните на каждом переключателе и добавьте следующий код:

private void radioButtonLargeIcon CheckedChanged(object sender, EventArgs e)

RadioButton rdb = (RadioButton)sender; if (rdb.Checked)

this.listViewFilesAndFolders.View = View.Largelcon;

private void radioButtonList CheckedChanged(object sender, EventArgs e) {

RadioButton rdb = (RadioButton)sender; if (rdb.Checked)

this.listViewFilesAndFolders.View = View.List;

private void radioButtonSmallIcon CheckedChanged(object sender, EventArgs e) {

RadioButton rdb = (RadioButton)sender; if (rdb.Checked)

this.listViewFilesAndFolders.View = View.Smalllcon;

private void radioButtonDetails CheckedChanged(object sender, EventArgs e) {

RadioButton rdb = (RadioButton)sender; if (rdb.Checked)

this.listViewFilesAndFolders.View = View.Details;

private void radioButtonTile CheckedChanged(object sender, EventArgs e) {

RadioButton rdb = (RadioButton)sender; if (rdb.Checked)

this.listViewFilesAndFolders.View = View.Tile;



Мы проверяем переключатель, чтобы выяснить, изменилось ли его состояние на Checked - если да, то мы устанавливаем свойство View элемента управления ListView соответствующим образом.

На этом создание примера применения элемента управления ListView завершается. При его запуске результат должен быть подобным показанному на рис. 15.21.

CNWINDOWS

Fiename

La* ecc sed

JjTaikt

06Ю7 200515 47 07

0БО7 2005 15 39 32

2562005 16 18 47

JjWeb

06O7 2005 15 36 19

06-07 20051857 58

iOk>g

0607 2005 15 38 37

p 000001. Игр

19274

03-12 2002 1 3 36 46

M 002926 Imp

19528

070920041512 39

1272

18-062004105205

bootttatdat

2048

06O7 2005 15 37 00

icJockavi

82944

03 12 2002 00 00 00

il

О ledoBUttonLegecon О radK£iitonSmalcon О ladioeuiorijti G fedoBunorOelA О ladoBottonTie

( bUtonBack I

Puc. 15.21. Работающее приложение ListView

Добавление обработчиков событий

Мы завершили создание интерфейса пользователя и теперь можем перейти к написанию кода. Вначале нам требуется поле для хранения папок, по которым выполняется перемещение, чтобы к ним можно было возвращаться по щелчку на кнопке Back. Мы будем сохранять абсолютные пути папок, поэтому выберите для их хранения коллекцию StringCollection:

partial class Forml : Form

Поле-член для хранения ранее просматривавшихся папок

private System.Collections.Specialized.StringCollection folderCol;

Мы не создали ни одного заголовка столбцов в конструкторе форм, поэтому их нужно создать теперь с помощью метода CreateHeadersAndFillListView ():

private void CreateHeadersAndFillListView()

ColumnHeader colHead; Первый заголовок colHead = new ColumnHeader(); colHead.Text = Filename ;

this.listViewFilesAndFolders.Columns.Add(colHead); Вставка заголовка

Второй заголовок

colHead = new ColumnHeader();

colHead.Text = Size ;

this.listViewFilesAndFolders.Columns.Add(colHead); Вставка заголовка

Третий заголовок

colHead = new ColumnHeader ();

colHead.Text = Last accessed ;

this.ListViewFilesAndFolders.Columns.Add(colHead); Вставка заголовка

Мы начинаем с объявления единственной переменной colHead, используемой для создания трех заголовков столбцов. Для каждого из трех заголовков мы объявляем переменную заново и присваиваем ей Text, прежде чем добавить ее в коллекцию Columns элемента управления ListView.



Две локальные переменные, используемые для создания элементов для вставки. ListViewItem Ivi;

ListViewItem.ListViewSubltem Ivsi;

Если корневая папка не существует, вставка чего-либо невозможна, if (root.СотрагеТо( ) == 0) return;

/ / Получение информации о корневой папке. Directorylnfo dir = new Directoryinfо (root);

Извлечение файлов и папок из корневой папки. Directorylnfo[] dirs = dir.GetDirectories(); Папки

FileInfo[] files = dir.GetFiles(); Файлы

Очистка элемента ListView. Обратите внимание,

что мы вызываем метод Clear применительно к

коллекции Items, а не к самому объекту ListView.

Метод Clear объекта ListView удаляет все, включая заголовки

столбцов, а нам нужно удалить только элементы из представления.

this.listViewFilesAndFolders.Items.Clear();

Установка содержимого надписи в соответствии с текущим путем, this.labelCurrentPath.Text = root;

Блокирование объекта ListView от обновлений, this.listViewFilesAndFolders.BeginUpdate ();

Циклический просмотр все папок в корневой папке и их вставка.

foreach (Directorylnfo di in dirs)

Создание главного элемента ListViewItem.

Ivi = new ListViewItem 0 ;

Ivi.Text = di.Name; Имя папки

Ivi.Imagelndex = 0; Значок папки имеет индекс, равный О Ivi.Tag = di.FullName; Установка свойства tag в соответствии

с полным путем папки

Создание двух подэлементов ListViewSubltems.

Ivsi = new ListViewItem.ListViewSubltemО;

Ivsi.Text = ; Размер - папка не имеет размера,

поэтому данный столбец пуст Ivi .Subltems.Add(Ivsi) ; Добавление подэлемента в элемент ListViewItem Ivsi = new ListViewItem.ListViewSubltemО;

Ivsi.Text = di.LastAccessTime.ToString0; Последний посещенный столбец Ivi.Subltems.Add(Ivsi); Добавление подэлемента в элемент ListViewItem

Добавление ListViewItem в коллекцию Items элемента управления ListView. this.ListViewFilesAndFolders.Items.Add(Ivi);

Циклический просмотр всех файлов в корневой папке.

foreach (Filelnfo fi in files)

Создание главного элемента ListViewItem.

Ivi = new ListViewItem 0 ;

Ivi.Text = fi.Name; Имя файла

Заключительное действие по инициализации формы, поскольку она отображается впервые, сводится к заполнению представления в виде списка файлами и папками, загруженными с жесткого диска. Для этого служит другой метод:

private void PaintListView(string root)



1 ... 151 152 153 [ 154 ] 155 156 157 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика