Вход/Регистрация
Программирование КПК и смартфонов на .NET Compact Framework
вернуться

Климов Александр Петрович

Шрифт:

 else s = "файл";

 NameForm nameForm =

new NameForm(this, "Переименовать " + s, lvi.Text,

new SetNameDelegate(SetRename));

 if (nameForm.ShowDialog = DialogResult.OK) fillList;

 listView.Focus;

}

Сначала обрабатывается текущий выделенный элемент. Если пользователь выделил папку, то для формы

nameForm
задается соответствующий заголовок
Переименовать папку
. Также из этой формы передается в основную форму новое имя папки или файла с помощью метода
Set Rename
, как это показано в листинге 7.17.

Листинг 7.17

/// <summary>

/// Метод для переименования папки или файла

/// </summary>

/// <param name="name">Имя папки или файла</param>

public void SetRename(string name) {

 ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

 bool isFolder = lvi.ImageIndex == 0;

 string itemName = path + lvi.Text;

 string destName =

Path.GetDirectoryName(itemName) +

Path.DirectorySeparatorChar.ToString + name;

 if (isFolder)

Directory.Move(itemName, destName);

 else

File.Move(itemName, destName);

}

После того как будет получена информация о выделенном элементе, он переименовывается. Для реализации команды

Удалить
используется код, приведенный в листинге 7.18.

Листинг 7.18

private void deleteMenuItem_Click(object sender,

 System.EventArgs e) {

 ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

 bool isFolder = lvi.ImageIndex == 0;

 string s = "Are you sure you want to delete " + lvi.Text;

 if (isFolder)

s += " and all its content";

 s += "?";

 if (MessageBox.Show(s, this.Text, MessageBoxButtons.YesNo,

MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) ==

DialogResult.Yes) {

 if (isFolder)

Directory.Delete(path + lvi.Text, true);

 else

File.Delete(path + lvi.Text);

 fillList;

}

Перед удалением папки или файла запрашивается подтверждение действий пользователя. Для создания новой папки используется следующий код, приведенный в листинге 7.19.

Листинг 7.19

private void newFolderMenuItem_Click(object sender, System.EventArgs e) {

 Cursor.Current = Cursors.WaitCursor;

 ListViewItem lvi = listView.Items[listView.SelectedIndices[0]];

 NameForm nameForm = new NameForm(this, "Новая папка", "",

new SetNameDelegate(SetNewName));

 if (nameForm.ShowDialog == DialogResult.OK) fillList;

 listView.Focus;

}

В результате действия этой функции отображается форма

NameForm
с заголовком
Новая папка
. Эта форма также передает информацию в главную форму при помощи метода
SetNewName
, который приведен в листинге 7.20.

Листинг 7.20

/// <summary>

/// Устанавливает новое имя для папки

/// </summary>

/// <param name="name">Имя для папки</name>

public void SetNewName(string name) {

 Directory.CreateDirectory(path + name);

}

Метод создает папку с заданным именем. Как видно, код его чрезвычайно прост.

Код для выполнения команды

Свойства
приведен в листинге 7.21.

Листинг 7.21

private void propertiesMenuItem_Click(object sender, System.EventArgs e) {

 Cursor.Current = Cursors.WaitCursor;

  • Читать дальше
  • 1
  • ...
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: