1

我对下面的代码有点困惑。我正在获取存储在数据库中的纯文本并将其提供给 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--;
     }
}

有人可以在这里阐明一下吗?

4

1 回答 1

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()需要使错误消失。不知道为什么。

于 2013-09-24T15:50:37.430 回答