SaveFileDialog保存为空白分机? - C#

时间:2013-11-23 05:52:31

标签: c#

所以我掌握了OpenFileDialog,现在我似乎无法理解SaveFileDialog。看了几页,每个页面都有自己的方法,但没有一个能够将richtextbox中的文本保存到文件中。

private void button1_Click(object sender, EventArgs e)
        {
            Stream myStream;
            SaveFileDialog exportdialogue = new SaveFileDialog();

            exportdialogue.Filter = "txt files (*.txt)|*.txt*";
            exportdialogue.FilterIndex = 2;
            exportdialogue.RestoreDirectory = true;

            if (exportdialogue.ShowDialog() == DialogResult.OK)
            {
                if ((myStream = exportdialogue.OpenFile()) != null)
                {
                    StreamWriter wText = new StreamWriter(myStream);

                    wText.Write("Some Text");

                    myStream.Close();
                }
            }
        }

使用richtextbox和普通按钮,也“使用System.IO;” (对于流)

我试图让按钮使用SaveFileDialog,这样它就可以将richtextbox中的内容导出到文本文件中。

问题: 从这里不确定我需要做什么,以便从富文本框中保存内容。 当过滤器到位时,不知道为什么SaveFileDialog会保存没有扩展名的文件。

3 个答案:

答案 0 :(得分:1)

你设置:

exportdialogue.Filter = "txt files (*.txt)|*.txt*";

只包含一个过滤器,但您设置了:

exportdialogue.FilterIndex = 2;

表示使用SECOND过滤器。 (FilterIndex是从1开始的。)

如果设置FilterIndex = 1,则文件的扩展名应为.txt

答案 1 :(得分:0)

您可以使用using {}块来解决问题:

试试这个:

            SaveFileDialog exportdialogue = new SaveFileDialog();

            exportdialogue.Filter = "txt files (*.txt)|*.txt*";
            exportdialogue.FilterIndex = 2;
            exportdialogue.RestoreDirectory = true;


            if (exportdialogue.ShowDialog() == DialogResult.OK)
            {
                using( Stream myStream = exportdialogue.OpenFile())
                {
                    StreamWriter wText = new StreamWriter(myStream);

                    wText.Write("Some Text");
                    wText.Close();


                }
            }

答案 2 :(得分:-1)

你需要使用到达文本框的savefile方法,并从savedialogbox传递文件名。

reachtextbox.SaveFile(exportdialogue.FileName);

ps:它会像上面的代码一样。