С# для Windows. Ипользование в приложении контрола FolderBrowserDialog

К началу раздела

Ипользование в приложении контрола FolderBrowserDialog

Контрол обеспечивает способ просмотра, создания, и выбира рабочей директории. Использование контрола целесообразно когда в программе необходимо посмотреть или выбрать имеющиеся папки (за исключением виртуальных) на доступных для компьютера жестких дисках (в том числе и сетевых), не выбирая конкретный файл. Просмотр папок выполнен в виде древовидной струры, корень которой - Рабочий стол (Desctop). Корень дерева может быть смещен вниз дерева путем задания в свойствах контрола какой либо системной папки.

Для изучения работы с контролом FolderBrowserDialog вновь возьмем проект решения, который мы использовали в предыдущем параграфе (подробно о создании проекта решения было расказано в первом разделе книги), немного, как и прежде, его изменив (убрав коды обработчиков событий нажатия кнопок, изменив надписи и картиночки при желании) и добавим на форму контрол FolderBrowserDialog. Контрол не визуальный и, потому, он разместится ниже формы.

Обработчики Form1_Load, который вызываться при каждой загрузке формы и который мы использовали для начальной инициализации параметров программы, button1_MouseHover и и button1_MouseLeave, используемые для отображения текста подсказок в контроле StatusBar и обработчик нажатия кнопки 3 (выход из программы) оставим прежними.


В начало

Основные свойства FolderBrowserDialog

Напомним, для отображения свойств контрола, кликнем по нему правой кнопкой мышки и выберем в контекстном меню пункт "Properties", вызвав, тем самым, окно Propeerties.

Свойство RootFolder задает одну из системных папок и смещает корень дерева просмотра на данную папку, делая недоступными для просмотра все другие папки выше выбранной. Так, задав в качестве свойства "Programs", доступными для просмотра будут только папка меню "Программы" со всеми ее вложениями.

Свойство SelectedPath позволяет задать папку, отображаемую при старте как выбранную. Это свойство не влияет на выбор при задании имени папки вне доступности, определяемой свойством RootFolder. Свойство имеет встроенный редактор (кнопочку с тремя точками, появляющуюся при выборе свойства, нажатие на которую вызывает редактор "Обзор папок"), позволяющий обычным для Windows способом выбрать или создать папку.

Свойство ShowNewFolderButton разрешает показ кнопки "Создать новую папку", а тем самым и создание папки из программы.

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


В начало

Работа с FolderBrowserDialog

Основная задача контрола - определить имя папки.

Запишем следующий код обработчика события нажатия кнопки 1 и запустим приложение (рис 1)

private void button1_Click(object sender, System.EventArgs e)
{
 DialogResult dialogresult = folderBrowserDialog1.ShowDialog();
 //Надпись выше окна контрола
 folderBrowserDialog1.Description="Поиск папки";
 string folderName="";
 if(dialogresult == DialogResult.OK )
 {
  //Извлечение имени папки
  folderName = folderBrowserDialog1.SelectedPath;
 }
 textBox1.Text=folderName;
}

folderbrowserdialog001.gif

Рис.1 Выбор и отображение имени папки

В контроле TextBox будет имя выбранной папки, например:

C:\WINNT

Наиболее часто контрол используется с OpenFileDialog и SaveFileDialog для инициализации имени директории:

private void button1_Click(object sender, System.EventArgs e)
{
 DialogResult dialogresult = folderBrowserDialog1.ShowDialog();
 //Надпись выше окна контрола
 folderBrowserDialog1.Description="Поиск папки";
 string folderName=null;
 string filename=null;
 if(dialogresult == DialogResult.OK )
 {  
  //Инициализируем OpenFileDialog
  //Прежде всего имя директории
  openFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath;
  //Далее знакомый уже пример загрузки текста
  openFileDialog1.FileName = null;
  openFileDialog1.Filter="rtf файлы (*.rtf)|*.rtf|txt файлы(*.txt)|*.txt";
  if(openFileDialog1.ShowDialog() == DialogResult.OK)
  {
   //Имя файла и директории хранитя в войстве FileName как строка
   filename= openFileDialog1.FileName;
   //Создаем поток
   Stream stream = openFileDialog1.OpenFile();
   //Загружаем файл в RichTextBox
   richTextBox1.LoadFile(stream,RichTextBoxStreamType.RichText);
   //Закрываем поток
   stream.Close();    	
  }
 }
} 

Сменить папку можно и программно, например:

folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;

И последнее - контрол может быть использован для создания папки на доступном диске, для чего необходимо задать соответствующие свойство ShowNewFolderButton:

folderBrowserDialog1.ShowNewFolderButton = true;

Еcли Вы пришли с поискового сервера - посетите мою главную страничку

На главной странице Вы найдете программы комплекса Veles - для тех кто готовится к экзаменам на право управления автомобилем или мотоциклом, программу NumberPhoto, созданную для работы с фото, сделанными цифровым фотоаппаратом, программу Bricks - игрушку для детей и взрослых, программу записную книжку, теоретический материал по программированию в среде Borland C++ builder, C# (C .Net).

На главную страницу

В начало страницы

К началу раздела


Сайт управляется системой uCoz