//Открытие файла из система private void OpenToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog.InitialDirectory = Environment.CurrentDirectory; openFileDialog.Filter = "Graphics Files (*.grf)|*.grf"; //Шаблоны расширения файлов openFileDialog.FileName = ""; //Если есть результат выбора, то получить название файла if (openFileDialog.ShowDialog() == DialogResult.OK) { fileName = openFileDialog.FileName; } else { return; } //Работа с потоком BinaryFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); InfoForSave OpeningInfo = formatter.Deserialize(stream) as InfoForSave; //Настройка формы newMDIChild = new Form2(OpeningInfo.SizeOfForm); newMDIChild.SetFigure(OpeningInfo.ListOfFigures); stream.Close(); newMDIChild.MdiParent = this; newMDIChild.Text = Path.GetFileNameWithoutExtension(fileName); newMDIChild.Show(); }
//Сохранение файла public void SaveFile(bool IsRequired) { //Шаблон расширения и начальная директория saveFileDialog.Filter = "Graphics Files (*.grf)|*.grf"; saveFileDialog.InitialDirectory = Environment.CurrentDirectory; //Проверка, есть ли такой файл в системе и есть ли необходимость в принудительном переименовании if (!System.IO.File.Exists(fileName) || IsRequired) { openFileDialog.FileName = ""; if (saveFileDialog.ShowDialog() == DialogResult.OK) { fileName = saveFileDialog.FileName; } else { return; } } { BinaryFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None); newMDIChild = this.ActiveMdiChild as Form2; SavingInfo = new InfoForSave(); SavingInfo.ListOfFigures = newMDIChild.GetFigure(); SavingInfo.SizeOfForm = newMDIChild.Size; //formatter.Serialize(stream, newMDIChild.GetFigure()); formatter.Serialize(stream, SavingInfo); stream.Close(); ActiveMdiChild.Text = Path.GetFileNameWithoutExtension(fileName); newMDIChild.SetIsModification(false); } }