1

私は何か新しいことを試みていましたが、基本的にこれに出くわしました: http://www.homeandlearn.co.uk/csharp/csharp_s4p11.html

私のフォームには、名前を付けて保存オプションと複数のタブがあります。すべてのリッチテキスト ボックスをテキスト ファイルに保存したいと思います。しかし、複数のリッチテキストボックスを追加すると、一番下のものしか保存されないので、式が間違っていると思いますか?

private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
    string Saved_File = "";

    saveFD.InitialDirectory = "C:";
    saveFD.Title = "Save your file as...";
    saveFD.FileName = "";
    saveFD.Filter = "Text (*.txt)|*.txt|All Files(*.*)|*.*";
    if (saveFD.ShowDialog() != DialogResult.Cancel)
    {
        Saved_File = saveFD.FileName;
        richTextBox1.SaveFile(Saved_File, RichTextBoxStreamType.PlainText);
        richTextBox2.SaveFile(Saved_File, RichTextBoxStreamType.PlainText);
        richTextBox3.SaveFile(Saved_File, RichTextBoxStreamType.PlainText);
        richTextBox53.SaveFile(Saved_File, RichTextBoxStreamType.PlainText);
    }
}

上記の例では、richTextBox53 のみが保存されますが、上記のすべての richTextBoxes が保存されないのはなぜですか? また、それらすべてをテキスト ファイルに保存するにはどうすればよいでしょうか。

4

3 に答える 3

1

コメントで述べたように、オーバーライドは saveFile 関数のストリームのデフォルトの動作であるため
、ファイル モードを指定する必要があります。

System.IO.FileStream fs = 
                    new System.IO.FileStream(Saved_File,
                        System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.ReadWrite);
    richTextBox1.SaveFile(fs, Saved_File);
        richTextBox2.SaveFile(fs, Saved_File);
        richTextBox3.SaveFile(fs, Saved_File);
        richTextBox53.SaveFile(fs, Saved_File);
fs.Close();
于 2013-04-14T01:36:21.157 に答える