将纯文本保存为RTF文本

时间:2013-09-24 15:32:18

标签: c# winforms richtextbox

我对以下代码感到困惑。我正在将纯文本存储在数据库中并将其提供给RichTextBox控件的Text部分,然后将其保存到文件中。

第一个文件总是空白,即使它确实包含数据。

RichTextBox test = new RichTextBox();
for(int i = 0; i < dt.Rows.Count; i++)
{
     test.Text = dt.Rows[i][1].ToString();
     string FILE_NAME = Path.Combine(path, dt.Rows[i][0].ToString() + ".rtf");
     test.SaveFile(FILE_NAME, RichTextBoxStreamType.RichText);
     test.Clear();
}

现在正在进行一项解决方案,即使它很难看我做了以下操作,它确实正确地将第一个条目写入文件

bool run_once = true;
RichTextBox test = new RichTextBox();
for(int i = 0; i < dt.Rows.Count; i++)
{
     test.Text = dt.Rows[i][1].ToString();
     string FILE_NAME = Path.Combine(path, dt.Rows[i][0].ToString() + ".rtf");
     test.SaveFile(FILE_NAME, RichTextBoxStreamType.RichText);
     test.Clear();

     if (run_once)
     {
          File.Delete(FILE_NAME);
          run_once = false;
          i--;
     }
}

有人可以在这里说清楚吗?

1 个答案:

答案 0 :(得分:1)

有趣。我“认为”这可能是一个错误。这是我的解决方法:

using (RichTextBox test = new RichTextBox()) {
  for (int i = 0; i < dt.Rows.Count; i++) {
    test.SelectAll();
    test.Text = dt.Rows[i][1].ToString();
    string FILE_NAME = Path.Combine(path, dt.Rows[i][0].ToString() + ".rtf");
    test.SaveFile(FILE_NAME, RichTextBoxStreamType.RichText);
    test.Clear();
  }
}

需要SelectAll()才能让错误消失。不知道为什么。