添加新String后为什么RichTextBox会丢失格式?

时间:2010-12-28 22:44:57

标签: c#

我有丰富的文本框字符串颜色:

我有richtexbox,用户在其中键入消息。我标记了我字典中存在的每个单词。我使用这个代码:

  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 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

SLaks是正确的。要获取/设置格式化文本,您需要访问Rtf属性:http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.rtf.aspx

另请查看SelectedRtf媒体资源:http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.selectedrtf.aspx

答案 2 :(得分: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 谢谢你们!