【问题标题】:How to save richboxtext content to .txt file via saveFiledialog?如何通过 saveFiledialog 将richboxtext 内容保存到 .txt 文件?
【发布时间】:2017-09-16 04:55:46
【问题描述】:

我正在尝试为自己创建一个简单的记事本。 目前我创建了一个按钮,我可以在其中打开文件并获取内容。 如何创建一个保存文件按钮,以便我的 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 重载之一。
  • rtf_NotePad.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText);这对我有用。对吗?
  • 你想创建什么?类似写字板的应用程序还是类似记事本的应用程序?
  • 您正在保存纯文本,然后设置颜色。 rtf_NotePad.ForeColor = colorDialog1.Color; 将整个富文本的颜色设置为选定的颜色。
  • 干得好,如果您发现它们有帮助,您可以接受其中一个答案并为他们两个投票:)

标签: c# .net winforms richtextbox


【解决方案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);
}

【讨论】:

  • 当我使用字体/颜色时这是否有效?我创建了一个按钮格式字体。当我在我的程序中更改字体时,保存并再次打开后它不会显示字体,只是一个简单的文本。
  • 使用我的答案中的确切代码进行加载和保存。它会工作:)
【解决方案2】:

您可以使用富文本框的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 选项,则字体选项将是可以通过Settings.settings 保存的User Settings。然后您可以在应用程序加载后为您的TextBox/RichTextBox 设置该字体。这样您就可以将文件保存为.txt 格式。

【讨论】:

  • 即使我保存在 .rtf 中,在同一程序或任何其他 .rtf 程序中打开 .rtf 文件后,它也不会显示字体/颜色。
  • 如果您需要使用.rtf,您应该使用LoadFile 方法加载。正如 Fᴀʀʜᴀɴ 在他的帖子中提到的那样。
  • 如果您正在创建一个类似写字板的应用程序,您需要使用.rtf,但如果您正在创建一个类似记事本的应用程序,您需要.txt(也可以使用TextBox
  • 我已经像 Farhan 所说的那样做了。更新了我的问题,以便您看到。将 .rtf 保存在 .txt 中并不重要,它不会显示任何颜色。
  • 你想创建什么?类似写字板的应用程序或类似记事本的应用程序?您正在保存纯文本,然后设置颜色。 rtf_NotePad.ForeColor = colorDialog1.Color; 将整个富文本的颜色设置为选定的颜色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多