На этом шаге мы рассмотрим назначение, основные свойства и пример использования этого компонента.
Компонент OpenFileDialog (рисунок 1) представляет собой диалоговое окно (диалог) Открыть.
Рис.1. Компонент OpenFileDialog
Свойства компонента приведены в таблице 1.
Свойство | Описание |
---|---|
Title | Текст в заголовке окна. Если значение свойства не задано, то в заголовке отображается текст Открыть |
InitialDirectory | Каталог, содержимое которого отображается при появлении диалога на экране |
Filter | Свойство задает один или несколько фильтров файлов. В окне отображаются только те файлы, имена которых соответствуют выбранному фильтру. Фильтр задается строкой вида Описание|Маска. Например, фильтр Текст|*.txt задает, что в окне диалога следует отображать только текстовые файлы. Фильтр может состоять из нескольких элементов, например: Текст|*.txt|Все файлы|*.* |
FilterIndex | Если фильтр состоит из нескольких элементов, например, Текст|*.txt|Все файлы|*.*, то значение свойства задает фильтр, который будет использоваться в момент появления диалога на экране |
FileName | Имя выбранного пользователем файла |
RestoreDirectory | Признак необходимости отображать содержимое каталога, указанного в свойстве InitialDirectory, при каждом появлении окна. Если значение свойства равно False, то при следующем появлении окна отображается содержимое каталога, выбранного пользователем в предыдущий раз |
Отображение диалога Открыть обеспечивает метод ShowDialog. Его значением является код клавиши, нажатием которой пользователь завершил диалог (закрыл окно).
В качестве примера приведем фрагмент программы MEdit — функция обработки события Click на команде Открыть меню Файл.
На рисунке 2 приведен внешний вид формы.
Рис.2. Внешний вид формы
На нее мы добавили компонент textBox (имя textBox1), у которого установили следующие свойства:
. . . . private: String^ fn; // имя файла bool textChanged; // true - в текст внесены изменения // выбор в меню Файл команды Открыть private: System::Void toolStripMenuItem2_Click(System::Object^ sender, System::EventArgs^ e) { System::Windows::Forms::DialogResult dr; int r; r = 0; //SaveText(); // сохранить текст, находящийся в поле компонента // функция, которая будет использована в дальнейшем для // сохранения предыдущего содержимого компонента if (r == 0) // если нечего сохранять... { openFileDialog1->FileName = String::Empty; // отобразить диалог Открыть dr = openFileDialog1->ShowDialog(); if (dr == System::Windows::Forms::DialogResult::OK) { fn = openFileDialog1->FileName; // отобразить имя файла в заголовке окна this->Text = fn; try { // считываем данные из файла System::IO::StreamReader^ sr = gcnew System::IO::StreamReader(fn); textBox1->Text = sr->ReadToEnd(); textBox1->SelectionStart = textBox1->TextLength; sr->Close(); textChanged = false; } catch ( System::IO::FileLoadException^ e) { MessageBox::Show("Ошибка:\n" + e->Message, "MEdit", MessageBoxButtons::OK, MessageBoxIcon::Error); } } } }
На следующем шаге мы рассмотрим компонент SaveFileDialog.