2013-09-24 91 views
1

我對以下代碼有些困惑。我將純文本存儲在數據庫中,並將其提供給RichTextBox控件的Text部分,然後將其保存到文件中。將純文本保存爲RichText

即使它包含數據,第一個文件始終爲空。

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

這可能有所幫助:http://stackoverflow.com/questions/10725438/converting-txt-to-rtf – DSway

+0

使用代碼我已經格式化純文本到rtf格式。這有效,但上面的循環總是寫入沒有數據的第一個文件。當我在工作中刪除它並再次運行該條目時,它會正確寫入文件。 – Tsukasa

+0

如果你想使用RichTextBox,LarsTech在下面有一個解決方案。既然你不需要真正的控制,我認爲只是轉換爲rtf的方法可能會更快。 – DSway

回答

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()使錯誤消失需要。不知道爲什麼。

+0

這個技巧。謝謝 – Tsukasa