如何删除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中删除第一部分...然后显示第二部分?
答案 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
。