Здравствуйте,пишу текстовый редактор. Никак не получается сделать 2штуки:
1). - Сделал "сохранить как",но не знаю как сделать чтобы сохраняло без окна о пути к документу
2). - Не знаю как сделать,чтобы при закрытии программы,если файл был сохранен появлялся месседж-бокс с просьбой сохранить(ну как в notepad в windows)
Вот сам код. Поможете?
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.IO;
using System.Windows.Forms;
namespace Notepade_by_rafamont
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "Текстовый редактор by rafamont";
openFileDialog1.FileName = @"C:\Users\rafamont\Desktop";
openFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt|All files(*.*)|*.*";
saveFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt|All files(*.*)|*.*";
}
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
if (openFileDialog1.FileName == String.Empty) return;
// Читаєм файл + coding 1251
try
{
var Reader = new System.IO.StreamReader(openFileDialog1.FileName, Encoding.GetEncoding(1251));
richTextBox1.Text = Reader.ReadToEnd();
}
catch(FileNotFoundException Sit1)
{
MessageBox.Show(Sit1.Message + "\n Такого файла не существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch(Exception Sit1)
{
MessageBox.Show(Sit1.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.FileName = openFileDialog1.FileName;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
Save1();
}
}
private void Save1()
{
try
{
var Writer = new StreamWriter(saveFileDialog1.FileName, false, Encoding.GetEncoding(1251));
Writer.Write(richTextBox1.Text);
Writer.Close();
richTextBox1.Modified = false;
}
catch (Exception Sit1)
{
MessageBox.Show(Sit1.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void Form1_FormClosing (object sender, FormClosedEventArgs e)
{
if (richTextBox1.Modified == true)
{
var MesaBox = MessageBox.Show("Текст документа был изменен!", "Желаете ли вы сохранить изменения ?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
if (MesaBox == DialogResult.No) return;
if (MesaBox == DialogResult.Yes)
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
Save1();
return;
}
}
}
else
{
return;
}
}
}
}