【问题标题】:C# Environment.Newline does not work when saving/copying to text file保存/复制到文本文件时 C# Environment.Newline 不起作用
【发布时间】:2015-11-05 02:13:56
【问题描述】:

我正在制作一个 C# 应用程序,在该应用程序中,我使用以下方式从富文本框中复制文本

if(!string.IsNullOrEmpty(richTextBox1.Text))
        {
            Clipboard.SetText(richTextBox1.Text);

        }

我设置富文本框代码如下

richTextBox1.Text = file + Environment.NewLine + r + Environment.NewLine + r1 + Environment.NewLine + r2 + Environment.NewLine + r3 + Environment.NewLine + r4 + Environment.NewLine + r5 + Environment.NewLine + r6 + Environment.NewLine + r7 + Environment.NewLine + r8 + Environment.NewLine + r9 + Environment.NewLine + r10 + Environment.NewLine + r11 + Environment.NewLine + r12 + Environment.NewLine + r13;

另外,我使用

将富文本框文本保存到 .txt 文件中
if (!string.IsNullOrEmpty(richTextBox1.Text))
         { SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Text File|*.txt";
            saveFileDialog1.Title = "Export EXIF Data";

            //  saveFileDialog1.RestoreDirectory = true;
           DialogResult save =  saveFileDialog1.ShowDialog();
            if (save == DialogResult.OK)
            {
                if (saveFileDialog1.FileName != "")
                {

                    File.WriteAllText(saveFileDialog1.FileName, richTextBox1.Text);
                }

            }

现在我面临的问题是,在富文本框中,文本逐行出现在我使用过 Environment.NewLine 的地方 例如

line 1
line 2
line 3

但复制/保存后,.txt 文件看起来像

line 1line 2line 3

另外,如果我使用键盘快捷键 Ctrl+C 复制文本,则文本在文本文件中显示良好。

我希望你能理解我的问题并能够帮助我。 如果需要,我可以提供更多详细信息。

更新: 通过使用 string[] 而不是像这样的字符串,我能够在将 RichTextBox 文本保存到 .txt 文件时解决问题:

新代码:

 data = new String[] { file, r, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13 };
                 richTextBox1.Text = data[0] + Environment.NewLine + data[1] + Environment.NewLine + data[2] + Environment.NewLine + data[3] + Environment.NewLine + data[4] + Environment.NewLine + data[5] + Environment.NewLine + data[6] + Environment.NewLine + data[7] + Environment.NewLine + data[8] + Environment.NewLine + data[9] + Environment.NewLine + data[10] + Environment.NewLine + data[11] + Environment.NewLine + data[12] + Environment.NewLine + data[13] + Environment.NewLine + data[14];
//Saving:
File.WriteAllLines(saveFileDialog1.FileName, data);

旧代码:

richTextBox1.Text = file + Environment.NewLine + r + Environment.NewLine + r1 + Environment.NewLine + r2 + Environment.NewLine + r3 + Environment.NewLine + r4 + Environment.NewLine + r5 + Environment.NewLine + r6 + Environment.NewLine + r7 + Environment.NewLine + r8 + Environment.NewLine + r9 + Environment.NewLine + r10 + Environment.NewLine + r11 + Environment.NewLine + r12 + Environment.NewLine + r13;
//Saving:
File.WriteAllText(saveFileDialog1.FileName, richTextBox1.Text);

但复制仍然无法正常工作

【问题讨论】:

  • “.txt 文件看起来像”是什么意思 - 您如何检查它?您是否在二进制文件编辑器中查看过它的实际字节数?
  • 这与保存对话框或 WriteAllText 有什么关系吗?似乎richTextBox1.Text 不是您所期望的。为什么要为无格式文本使用富文本框?
  • 我可以将richTextbox中的文本复制并保存到一个.txt文件中,然后用记事本打开它。问题是通过代码保存/复制时,文本不是逐行放置,而是在同一行中。
  • 当您在调试器中时,'richTextBox1.Text' 是否保存并保留换行符?

标签: c#


【解决方案1】:

试试这个:

File.WriteAllLines(saveFileDialog1.FileName, richTextBox1.Lines);

【讨论】:

  • 你可能会喜欢它。根据 msdn,在 RichTextBox.Text 属性的“备注”下; “要在 RichTextBox 中显示多行文本,请将 Multiline 属性设置为 true。要读取或设置多行文本框的文本,请使用 Lines 属性。” msdn.microsoft.com/en-us/library/…
  • 哦!!!我认为它也可以,但我已经通过使用字符串数组解决了保存问题。现在我只需要修复复制问题
猜你喜欢
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 2015-12-10
  • 2018-10-04
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多