我对以下代码感到困惑。我正在将纯文本存储在数据库中并将其提供给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--;
}
}
有人可以在这里说清楚吗?
答案 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()
才能让错误消失。不知道为什么。