Елементи інтерфейсу: Діалогове вікно відкриття файлу

Діалогове вікно відкриття файлу служить для пошуку файлів, які використовуються в програмі. Для створення цього вікна призначений елемент управління OpenFileDialog. Даний елемент має безліч властивостей, основні з яких перераховані в таблиці 1.

Таблиця 1. Властивості елемента управління OpenFileDialog

 Властивість Опис 
 AddExtension  При встановленому значенні True додає розширення до імені файлу, якщо його немає. Вказується або значення властивості DefaultExt, або розширення задається властивістю Filter.
 CheckFileExists  Перевіряє наявність файлу з вказаним ім'ям при встановленому значенні True. Якщо файл не існує, видається попередження
 CheckPathExists  Перевіряє існування шляху до вказаного файлу при встановленому значенні True. Якщо шлях не існує, видається попередження
 DefaultExt  Визначає розширення файлу, що додається за замовчуванням в разі, коли користувач вводить ім'я файлу без розширення
 FileName  Визначає повний шлях до файлу, обраного в діалоговому вікні
 Filter  Задає значення списку Тип файлу, що визначає тип відображуваних файлів. Наприклад, для відображення тільки текстових файлів потрібно для цієї властивості задати значення Text files (* .txt) | * .txt. Щоб задати кілька фільтрів, застосовується символ |: Text files (* .txt) | * .txt | All files (*. *) | *. *. У разі використання декількох фільтрів можна за допомогою властивості FilterIndex задати фільтр за замовчуванням 
 InitialDirectory  Задає каталог, що відображається при першому виклику діалогового вікна. Для того щоб при наступних викликах відображався цей же каталог, необхідно властивості RestoreDirectory привласнити значення True
 Multiselect  Дозволяє вибрати кілька файлів в діалоговому вікні при встановленому значенні True
 Title  Визначає заголовок діалогового вікна. За замовчуванням вікну присвоюється стандартний для Windows заголовок

Щоб відобразити діалогове вікно відкриття файлу, необхідно викликати метод ShowDialog елемента управління OpenFileDialog. За допомогою методу OpenFile даного елемента можна відкрити потік для читання даних з файлу.

Розглянемо невеликий приклад, який продемонструє використання діалогового вікна відкриття файлу. Для цього виконайте такі дії:

1. Створіть новий Windows-додаток з ім'ям DialogsExample.

2. Відкрийте вікно властивостей і задайте за допомогою властивостей Text і Name заголовок форми Діалогові вікна та її ім'я frmDialogs.

3. Для створення вікна відкриття файлів додайте на форму елемент управління OpenFileDialog. Надайте значення OpenFileDlg властивості Name цього елемента управління.

4. Перетягніть на форму елемент управління Button. Дайте значення Відкрити файл і bOpenFile властивостям Text і Name відповідно.

5. Щоб при натисканні кнопки Відкрити файл з'являлося діалогове вікно Open (Відкрити), необхідно додати в код програми процедуру обробки події bOpenFile_Click (наприклад, за допомогою подвійного клацання на кнопці), що має наступний код:

        OpenFileDlg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF"

        OpenFileDlg.InitialDirectory = "C:\"

 

        OpenFileDlg.ShowDialog()

Даний код дозволяє при відкритті вікна відобразити вміст диска C:. При цьому будуть відображатися лише графічні файли.

 

Рис. 1. Діалогове вікно відкриття файлу

6. Щоб при натисканні кнопки Відкрити файл у вікні відкриття файлу з'являлося вікно повідомлень з ім'ям обраного файлу, необхідно в код програми додати процедуру обробки події OpenFileDlg_FileOk з наступним рядком:

        MessageBox.Show("Выбран файл с именем " + OpenFileDlg.FileName)

Тепер в додатку після натискання кнопки Відкрити файл буде з'являтися діалогове вікно Open (Відкрити) (рис. 1).

Примітка:

Насправді діалогові вікна відкриття та збереження файлу не відкривають і не зберігають файли. Вони призначені для завдання імені і розташування файлу, який повинен бути відкритий або збережений.

 Проект при виконанні матиме наступний вигляд:

Повний лістинг проекту наведено нижче:

Public Class frmDialogs

    Private Sub bOpenFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                                Handles bOpenFile.Click

        OpenFileDlg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF"

        OpenFileDlg.InitialDirectory = "C:\"

        OpenFileDlg.ShowDialog()

    End Sub

 

    Private Sub OpenFileDlg_FileOk(ByVal sender As Object, _

                                   ByVal e As System.ComponentModel.CancelEventArgs) _

                                Handles OpenFileDlg.FileOk

        MessageBox.Show("Обрано файл з іменем " + OpenFileDlg.FileName)

    End Sub

End Class