Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pragma once Hard / Занятие 10

.doc
Скачиваний:
14
Добавлен:
13.03.2015
Размер:
44.54 Кб
Скачать

Работа с меню и диалоговыми окнами

Добавьте в форму текстовое поле (TextBox), установите у него свойство Multiline равным True (текст может располагаться в нескольких строках) и растяните элемент на всю форму.

Для создания меню поместите в форму компонент MenuStrip. Значок компонента будет расположен под формой, а в самой форме появится полоса, где будут расположены команды. Создайте пункт меню «Файл» и 3 пункта подменю «Открыть», «Сохранить» и «Выход».

Добавьте в форму элементы openFileDialog и saveFileDialog.

Чтобы добавить обработчики событий, выполните двойной щелчок на пункте меню.

void Запись()

{

System::IO::StreamWriter^ X = //поток для записи

gcnew IO::StreamWriter(saveFileDialog1->FileName, false,

System::Text::Encoding::GetEncoding(1251));

//1 параметр - полный путь к файлу для записи

//2 параметр определяет, что данные перезаписываются (false) или добавляются(true)

//3 параметр определяет кодировку (1251 - поддержка русских букв)

X->Write(textBox1->Text); //запись в файл

X->Close();

textBox1->Modified=false; //изменений в textBox1 нет

}

private: System::Void выходToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

this->Close(); //вызывает событие формы FormClosing

}

private: System::Void открытьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

openFileDialog1->ShowDialog();

if(openFileDialog1->FileName!=nullptr) {

System::IO::StreamReader^ Z = //поток для считывания

gcnew IO::StreamReader(openFileDialog1->FileName,

System::Text::Encoding::GetEncoding(1251));

textBox1->Text = Z->ReadToEnd();

Z->Close();

}

}

private: System::Void сохранитьToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {

if(saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)

Запись();

}

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {

openFileDialog1->FileName = "";

openFileDialog1->Filter =

"Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*";

saveFileDialog1->Filter =

"Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*";

}

//выполняется при закрытии формы в том числе с помощью кнопки и Alt+F4

private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {

if (textBox1->Modified == false) return; //текст не изменен

System::Windows::Forms::DialogResult R;

R = MessageBox::Show("Сохранить изменения?",

"Редактор", MessageBoxButtons::YesNoCancel,

MessageBoxIcon::Exclamation);

switch (R){

case System::Windows::Forms::DialogResult::No: //не сохранять

return;

case System::Windows::Forms::DialogResult::Cancel: //передумал

e->Cancel=true;

break;

case System::Windows::Forms::DialogResult::Yes:

if(saveFileDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)

{Запись(); return;}

else e->Cancel=true; //передумал выходить

}

}

Соседние файлы в папке pragma once Hard