Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SaveFileDialog是否另存为空白ext?-C#_C# - Fatal编程技术网

SaveFileDialog是否另存为空白ext?-C#

SaveFileDialog是否另存为空白ext?-C#,c#,C#,所以我掌握了OpenFileDialog的诀窍,现在我似乎无法理解SaveFileDialog。看了几页,每一页都有自己的方法,但没有一页能够将richtextbox中的文本保存到一个文件中 private void button1_Click(object sender, EventArgs e) { Stream myStream; SaveFileDialog exportdialogue = new SaveFileDial

所以我掌握了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和普通按钮,也可以使用“Using System.IO;”(用于流)

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

问题: 不确定我需要从这里做什么才能让它保存富文本框中的内容。
不知道当过滤器就位时,为什么SaveFileDialog不带扩展名保存文件。

您需要使用reach textbox的savefile方法,并将savedialogbox中的文件名传递给它

reachtextbox.SaveFile(exportdialogue.FileName);
ps:它将类似于上面的代码

您设置:

exportdialogue.Filter = "txt files (*.txt)|*.txt*";
仅包含一个筛选器,但您可以设置:

exportdialogue.FilterIndex = 2;
这意味着使用第二个过滤器。(FilterIndex是基于1的)


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

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

试试这个:

            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();


                }
            }

当然可以。:-)你的答案是错的<代码>使用无法解决问题。(这里正好有一个过滤器,但是代码设置了
FlterIndex=2
)如果您将reachtextbox的内容保存为文本,那么使用它有什么意义。如果这样做,您将丢失所有格式。@Max它会保留格式。。。不是真的。在rtb中,您可以对文本应用类似于word的格式。如果唯一的目的是,您可以使用纯文本框来实现。我将其更改为FilterIndex=1;而且它仍然不会另存为.txt。另外,请设置DefaultExt:)