0

C#でメモ帳を作っています。これはファイルの保存部分です。問題は、テキストを変更して再度保存すると、元のファイルに保存するのではなく、新しいファイルを保存するように求められることです。

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {

        saveFileDialog1.Title = "Save file";
        saveFileDialog1.FileName = tabControl1.SelectedTab.Text;
        saveFileDialog1.Filter = "TEXT|*.txt|DOC|*.doc|DOCX|*.docx|RICH TEXT FILE|*.rtf|ALL FILES|*.*";
        saveFileDialog1.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

        if (saveFileDialog1.ShowDialog() == DialogResult.OK && saveFileDialog1.FileName != "")
        {
            richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
        }

    }
4

3 に答える 3

3

最後に保存されたファイルの値を持つプライベート フィールドをクラスで使用します。

var currentFileName = "";

    .....

    private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {

        saveFileDialog1.Title = "Save file";
        saveFileDialog1.FileName = tabControl1.SelectedTab.Text;
        saveFileDialog1.Filter = "TEXT|*.txt|DOC|*.doc|DOCX|*.docx|RICH TEXT FILE|*.rtf|ALL FILES|*.*";
        saveFileDialog1.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

        bool save = true;
        if (string.IsNullOrEmpty(currentFileName))
        {
            var result = saveFileDialog1.ShowDialog();

            if (result == DialogResult.OK && saveFileDialog1.FileName != "")
            {
                currentFileName = saveFileDialog1.FileName;
            }
            else
            {
                save = false;
            }
        }

        if (save)
            richTextBox1.SaveFile(currentFileName, RichTextBoxStreamType.RichText);
    }
于 2013-09-20T11:22:11.980 に答える