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

时间:2016-01-02 17:52:30

标签: c# .net winforms richtextbox

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

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

这就是我对Open File的所作所为。

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;

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

您可以使用富文本框的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格式保存文件。