将richtextbox保存到文本文件(记事本)

时间:2014-07-23 02:58:17

标签: c# winforms if-statement file-io save

如何在我的richtextbox中导出文本并将其保存在记事本中?

这是我到目前为止要保存的内容。我需要把它放在一个字符串中吗?

if (listView1.Items[i].SubItems[1].Text == "Inactive")
{
   richTextBox1.Text = richTextBox1.Text + listView1.Items[i].Text + " inactive on " + lbl_time.Text + "\n";
}

3 个答案:

答案 0 :(得分:0)

这是一种方便的快速保存方法,名为File.WriteAllText

File.WriteAllText(@"c:\somepath\yourFile.txt", r.Text);

如果您不需要更新RichTextBox中的文本,您可能只需保存文本:

if (listView1.Items[i].SubItems[1].Text == "Inactive")
{
    File.WriteAllText(@"c:\somepath\yourFile.txt",
        string.Concat(richTextBox1.Text, listView1.Items[i].Text, " inactive on ", lbl_time.Text, "\n"));
}

请注意,这将覆盖现有文件,而不是附加到文件。你没有说明这是否重要。

如果是,并且您只想将文本附加到文件(如果存在),则使用此文件:

File.AppendAllText(@"c:\somepath\yourFile.txt", r.Text);

答案 1 :(得分:0)

如何填充RichTextBox非常重要。我的意思是它正在循环或任何特定的方法或事件中填充。

如果您正在填充RichTextBox循环。那么您应该使用StringBuilder.AppendLine()StringBuilder.AppendFormat()方法而不是连接运算符+;

StringBuilder sb = new StringBuilder();
for (int i=0; i< listView1.Items.Count; i++)
{
    if (listView1.Items[i].SubItems[1].Text == "Inactive")
    {
        sb.AppendFormat("{0} inactive on {1}{2}", listView1.Items[i].Text,lbl_time.Text,Environment.NewLine);
    }
}
richTextBox.Text = sb.ToString();
string path = System.IO.Path.Combine(Application.StartupPath, "MyFile.txt");
File.WriteAllText(path,richTextBox.Text);

答案 2 :(得分:0)

这里是我的解决方案,虽然它也与给出的其他解决方案相同

                    if (listView1.Items[i].SubItems[1].Text == "Inactive")
                {
                   richTextBox1.Text = richTextBox1.Text + listView1.Items[i].Text + " inactive on " + lbl_time.Text + "\n";
                   File.WriteAllText(@"C:\Documents and Settings\pamojica\My Documents\" + lbl_date.Text + ".txt", richTextBox1.Text);
                }