为什么在追加新字符串后,RichTextBox会失去格式?

3
我有一个富文本框字符串颜色的问题:
我有一个富文本框,用户在其中输入消息。我标记了字典中存在的每个单词。我使用以下代码实现:
  this.inputTextAreaRtb.Text=this.inputTextAreaRtb.Text.Remove(startCoordinate, endCoordinate - startCoordinate);

  this.inputTextAreaRtb.SelectionStart = this.inputTextAreaRtb.Text.Length;
 this.inputTextAreaRtb.SelectionLength = 0;
  this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
  "David",
12, FontStyle.Underline);   
   this.inputTextAreaRtb.SelectionColor = Color.DarkBlue;                                             
   this.inputTextAreaRtb.AppendText(_word);
  this.inputTextAreaRtb.SelectionColor = this.inputTextAreaRtb.ForeColor;
  this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
   "David",
 12, FontStyle.Regular);      

但是,每次当我标记一个单词时,已经格式化的单词会变得松散。

有任何关于这个问题的想法吗?
3个回答

4

当你设置第一行中的inputTextAreaRtb.Text时,你正在设置一个没有任何格式的新文本。


是的,你说得对!但是针对这种情况的替代解决方案是什么?有什么想法吗?我已经尝试了下面的rtf解决方案,但它非常复杂,我认为有一个更简单的解决方案可以解决这个问题。 - AlexBerd

3

1
this.inputTextAreaRtb.Text=this.inputTextAreaRtb.Text.Remove(startCoordinate, endCoordinate - startCoordinate);
                ***this.inputTextAreaRtb.Rtf = this.lastRTF;***
                this.inputTextAreaRtb.SelectionStart = this.inputTextAreaRtb.Text.Length;
                this.inputTextAreaRtb.SelectionLength = 0;
                this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
                "David",
                12, FontStyle.Underline);   
                this.inputTextAreaRtb.SelectionColor = Color.DarkBlue;                                             
                this.inputTextAreaRtb.AppendText(_word);
                this.inputTextAreaRtb.SelectionColor = this.inputTextAreaRtb.ForeColor;
                this.inputTextAreaRtb.SelectionFont = new System.Drawing.Font(
                "David",
                12, FontStyle.Regular);

在每次迭代之前,我只需要保存RichTextBox的最后一个RTF。谢谢大家!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接