如何删除RichTextBox的内容并添加新内容?

时间:2015-02-19 22:05:14

标签: c# wpf

如何删除RichTextBox的内容并添加新内容?

我正从数据库中检索多个数据部分。 RichTextBox显示数据库的第一部分。

客户点击“下一步”按钮...... RichTextBox应显示数据库中的第二部分。以下代码将第二部分连接到第一部分。

gRTbx.Document.Blocks.Clear();

gobjParagaph.Inlines.Add(new Run(st));
gobjFlowDoc.Blocks.Add(gobjParagaph);
gRTbx.Document = gobjFlowDoc;

我还尝试在添加到RichTextBox之前放置它。

gobjFlowDoc.Blocks.Clear();

如何从RichTextBox中删除第一部分...然后显示第二部分?

1 个答案:

答案 0 :(得分:1)

您需要将FlowDocument替换为新的(或重新实例化)。下面是一个简单的示例,在按钮单击时将文本放在RichTextBox中,然后在第二次单击按钮时将其替换为不同的文本。

  private int numTimes = 0;

  private void SimpleTest(object sender, RoutedEventArgs e)
  {
    if (numTimes == 0)
    {
      FlowDocument fd = new FlowDocument();
      Paragraph p = new Paragraph();
      p.Inlines.Add("This is the first bit of text.");
      fd.Blocks.Add(p);
      gRTbx.Document = fd;
      numTimes++;
    }
    else
    {
      FlowDocument fd = new FlowDocument();
      Paragraph p = new Paragraph();
      p.Inlines.Add("This is the second bit of text.");
      fd.Blocks.Add(p);
      gRTbx.Document = fd;
    }
  }

如果您不想重新实例化FlowDocument,您可以清除它。只需确保在向其添加新Blocks之前清除它:

  private int numTimes = 0;
  private FlowDocument fd = new FlowDocument();
  private Paragraph p = new Paragraph();

  private void SimpleTest(object sender, RoutedEventArgs e)
  {
    if (numTimes == 0)
    {
      p.Inlines.Add("This is the first bit of text.");
      fd.Blocks.Add(p);
      gRTbx.Document = fd;
      numTimes++;
    }
    else
    {
      p.Inlines.Clear();
      fd.Blocks.Clear();
      p.Inlines.Add("This is the second bit of text.");
      fd.Blocks.Add(p);
      gRTbx.Document = fd;
    }
  }

请务必清除Inlines对象中的Paragraph