如何通过 saveFiledialog 将 richboxtext 内容保存到 .txt 文件?

How to save richboxtext content to .txt file via saveFiledialog?

我正在尝试为自己创建一个简单的记事本。 目前我已经创建了一个按钮,我可以在其中打开文件并获取内容。 我如何创建一个保存文件按钮,以便我的 richboxtext 的每一行都转到新的 .txt 文件?

我希望我可以保存到我选择的文件名而不是静态文件名,所以我使用 SaveFileDialog。

这就是我打开文件的方式。

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
    Stream plusma = openFileDialog1.OpenFile();

    string faila_nosaukums = openFileDialog1.FileName;
    string faila_teksts = File.ReadAllText(faila_nosaukums);
    rtf_NotePad.Text = faila_teksts;
}

目前没有要保存的文件:

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{

}

------------已更新----------------
正在保存文件:

            saveFileDialog1.Filter = "Text Files (*.txt)|*.txt|RTF Files (*.rtf)|*.rtf";
            saveFileDialog1.AddExtension = true;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                rtf_NotePad.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
            }

添加颜色:

            colorDialog1.ShowDialog();
            rtf_NotePad.ForeColor = colorDialog1.Color;

您可以使用RichTextBox.SaveFile()方法:

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    rtf_NotePad.SaveFile(saveFileDialog1.FileName);
}

此外,还有类似的打开文件的方法。这是 RichTextBox.LoadFile() 方法。像这样使用它:

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
    rtf_NotePad.LoadFile(openFileDialog1.FileName);
}

您可以使用富文本框的 SaveFile(String, RichTextBoxStreamType) 方法,并将 RichTextBoxStreamType.PlainText 作为第二个参数传递。

另外如果你想让用户选择保存为.txt格式或.rtf:

var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Text Files (*.txt)|*.txt|RTF Files (*.rtf)|*.rtf";
saveFileDialog.AddExtension = true;
if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    var extension = System.IO.Path.GetExtension(saveFileDialog.FileName);
    if(extension.ToLower()==".txt") /*saveFileDialog.FilterIndex==1*/
        richTextBox1.SaveFile(saveFileDialog.FileName, RichTextBoxStreamType.PlainText);
    else
        richTextBox1.SaveFile(saveFileDialog.FileName, RichTextBoxStreamType.RichText);
}

您应该知道 .rft 格式不同于 .txt 格式。 如果保存为.rtf格式,字体和颜色等格式保留,但如果保存为.txt格式,则只保存纯文本。而如果你想模拟记事本,则不需要使用.rtf格式。

另一点是,如果你想像记事本一样只有Font选项,字体选项将是User Settings,可以通过Settings.settings保存。然后您可以在应用程序加载后为 TextBox/RichTextBox 设置该字体。这样您就可以将文件保存为 .txt 格式。