Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
44
Добавлен:
18.11.2022
Размер:
600.23 Кб
Скачать

Лабораторная работа № 5

Задание:

Усовершенствовать приложение, разработанное на прошлом занятии, превратив его в MDI-приложение.

  1. Главную форму приложения сделать родительской.

  2. Добавить в проект новую форму, сделать еѐ начальной формой приложения и превратить еѐ в дочернюю форму.

  3. Оставить на родительской форме все пункты меню, а на дочернюю перенести все остальные элементы управления.

  4. Переписать обработчики всех пунктов меню так, чтобы при создании и открытии файлов отображались бы данные о каждом сотруднике в отдельной дочерней форме, а при закрытии файла соответствующая дочерняя форма закрывалась.

  5. При создании файла присваивать каждой новой дочерней форме заголовок «Новый сотрудник», а при сохранении – отображать в заголовке имя файла.

Ограничения:

1. Обеспечить доступность всех пунктов меню только в необходимые моменты времени.

Текст программы:

Главная форма проекта:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace Лабораторная__5

{

public partial class Form1 : Form

{

private Form2 form2;

public Form1()

{

InitializeComponent();

}

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

form2 = new Form2();

form2.MdiParent = this;

form2.Show();

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

form2.textBox5.Visible = false;

form2.textBox6.Visible = false;

form2.label5.Visible = false;

form2.label6.Visible = false;

сохранитьToolStripMenuItem.Visible = true;

сохранитьКакToolStripMenuItem.Visible = true;

form2.checkBox1.Visible = true;

form2.label1.Visible = true;

form2.label2.Visible = true;

form2.label3.Visible = true;

form2.label4.Visible = true;

form2.textBox1.Visible = true;

form2.textBox2.Visible = true;

form2.textBox3.Visible = true;

form2.textBox4.Visible = true;

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

if (openFileDialog.ShowDialog() == DialogResult.OK)

{

StreamReader streamReader = new StreamReader(openFileDialog.FileName);

string line, line2, line3, line4, nid;

line = streamReader.ReadLine();

line2 = streamReader.ReadLine();

line3 = streamReader.ReadLine();

line4 = streamReader.ReadLine();

form2.textBox1.Text = line;

form2.textBox2.Text = line2;

form2.textBox3.Text = line3;

form2.textBox4.Text = line4;

nid = streamReader.ReadLine();

if (nid == "true" || nid == "True")

{

form2.checkBox1.Checked = Convert.ToBoolean(nid);

}

else

{

form2.checkBox1.Checked = false;

}

streamReader.Close();

form2.Text = openFileDialog.FileName;

}

}

private void создатьToolStripMenuItem_Click(object sender, EventArgs e)

{

form2 = new Form2();

form2.MdiParent = this;

form2.Show();

form2.Text = "Новый сотрудник";

form2.textBox1.Clear();

form2.textBox2.Clear();

form2.textBox3.Clear();

form2.textBox4.Clear();

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

form2.textBox5.Visible = false;

form2.textBox6.Visible = false;

form2.label5.Visible = false;

form2.label6.Visible = false;

сохранитьToolStripMenuItem.Visible = true;

сохранитьКакToolStripMenuItem.Visible = true;

form2.checkBox1.Visible = true;

form2.label1.Visible = true;

form2.label2.Visible = true;

form2.label3.Visible = true;

form2.label4.Visible = true;

form2.textBox1.Visible = true;

form2.textBox2.Visible = true;

form2.textBox3.Visible = true;

form2.textBox4.Visible = true;

}

private void подоходныйНалогToolStripMenuItem_Click(object sender, EventArgs e)

{

form2.textBox5.Clear();

form2.textBox5.Visible = true;

form2.label5.Visible = true;

Int32 a = Convert.ToInt32(form2.textBox3.Text);

Double b;

b = a * 0.13;

form2.textBox5.AppendText(Convert.ToString(b));

}

private void профсоюзныйВзносToolStripMenuItem_Click(object sender, EventArgs e)

{

if (form2.checkBox1.Checked == false)

{

MessageBox.Show("Не является членом профсоюза", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

form2.textBox6.Clear();

form2.label6.Visible = true;

form2.textBox6.Visible = true;

Int32 a = Convert.ToInt32(form2.textBox3.Text);

Double b;

b = a * 0.01;

form2.textBox6.AppendText(Convert.ToString(b));

}

}

private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)

{

Form activ = ActiveMdiChild;

foreach (Form2 form2 in MdiChildren)

{

form2.SaveHow();

}

}

private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)

{

Form activ = ActiveMdiChild;

foreach (Form2 form2 in MdiChildren)

{

form2.Save();

}

}

private void закрытьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (расчётToolStripMenuItem.Visible == false)

{

Close();

}

var result = MessageBox.Show("Сохранить данные?", "Сохранение данных", MessageBoxButtons.YesNo);

if (result == DialogResult.Yes)

{

Form activ = ActiveMdiChild;

foreach (Form2 form2 in MdiChildren)

{

form2.Save();

form2.Close();

}

сохранитьToolStripMenuItem.Visible = false;

сохранитьКакToolStripMenuItem.Visible = false;

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

}

if (result == DialogResult.No)

{

Close();

}

}

}

}

Дочерняя форма:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace Лабораторная__5

{

public partial class Form2 : Form

{

Form1 frm = (Form1)ActiveForm;

public Form2()

{