C# Can';无法从windows记事本正确读取文件

C# Can';无法从windows记事本正确读取文件,c#,richtextbox,C#,Richtextbox,我用C#为简单文本编辑器编写了一些代码,并使用富文本框控件,我发现了一个我无法解决的问题。问题是,当我在文本编辑器中保存一个文件,然后尝试使用windows记事本重新打开它时,它变成一行,这就是示例 这是我从应用程序写入和保存的时间 在我保存它并在windows记事本中打开后,它会变成这样 这是我保存一张五元钞票的代码 try { saveFileDialog1.ShowDialog(); this.Text = file = toolStripTextBox1.Text =

我用C#为简单文本编辑器编写了一些代码,并使用富文本框控件,我发现了一个我无法解决的问题。问题是,当我在文本编辑器中保存一个文件,然后尝试使用windows记事本重新打开它时,它变成一行,这就是示例

这是我从应用程序写入和保存的时间

在我保存它并在windows记事本中打开后,它会变成这样

这是我保存一张五元钞票的代码

try
{
    saveFileDialog1.ShowDialog();
    this.Text = file = toolStripTextBox1.Text = saveFileDialog1.FileName;
    isi = richTextBox1.Text;
    write = new System.IO.StreamWriter(file);
    write.WriteLine(isi);
    write.Close();
    toolStripStatusLabel2.Text = "Saved";
}
catch (Exception)
{
    toolStripStatusLabel2.Text = "Save cancelled by user";
}

您知道如何修复它吗?

使用RichTextBox自己的保存方法将RichTextBox的内容保存到文件中:
保存文件(字符串,RichTextBoxStreamType)
您可以参考以下内容:


通过
LoadFile(Stream,RichTextBoxStreamType)加载文件内容,请参阅:

您可能会收到此消息,因为您试图仅使用以下代码将
richTextBox1.Text
(整个文本)保存在一行中

isi = richTextBox1.Text;
write = new System.IO.StreamWriter(file);
write.WriteLine(isi);
write.Close();
建议在
richTextBox1
中的特定行号上使用
write.WriteLine()
,然后移动到另一行

示例

 for (int i = 0; i < richTextBox1.Lines.Length; i++)
 {
      write.WriteLine(richTextBox1.Lines[i]);
 }
write.Close();
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
RichTextBox _RichTextBox = new RichTextBox();
try
{
     _RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.RichText);
}
catch (Exception EX)
{
     if (EX.Message.ToLower().Contains("format is not valid"))
     {
          _RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.PlainText);
     }
}
其中path表示代码中的
saveFileDialog1.FileName
。对于
RichTextBoxStreamType
,最好将其设置为
RichTextBoxStreamType.PlainText
,只要不使用诸如颜色/字体/保护/缩进等RTF

然后,您可以使用以下方法再次读取该文件

RichTextBox.LoadFile(string path, RichTextBoxStreamType);
注意:如果文件不在RTF中,而您尝试在RTF中读取它(
RichTextBox.LoadFile(字符串路径,RichTextBoxStreamType.RichText);
) 您可能会遇到格式错误。在这种情况下,您需要捕获异常并以普通或Unicode编码读取文件

示例

 for (int i = 0; i < richTextBox1.Lines.Length; i++)
 {
      write.WriteLine(richTextBox1.Lines[i]);
 }
write.Close();
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
RichTextBox _RichTextBox = new RichTextBox();
try
{
     _RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.RichText);
}
catch (Exception EX)
{
     if (EX.Message.ToLower().Contains("format is not valid"))
     {
          _RichTextBox.LoadFile(@"D:\Resources\text.txt", RichTextBoxStreamType.PlainText);
     }
}
谢谢,

我希望这对您有所帮助:)

我已经编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。