2011-03-15 92 views
0

上下文。聊天服務器。富文本框字體變成選定的文本字體

因此我需要的用戶有自己的字體和顏色

比方說,目前的客艙有2條線現在

Red line 
Green line 

紅在另一條線路的用戶類型。整個RichTextBox變成紅色。即

Red line 
Red line //This line was suppose to be green 
Red line 

這是我的函數來添加一個新的行到RichTextBox。字符串s用於調試目的

void OutBox(RichTextBox textBox, string user, string msg, string strFont, string strColour) 
     { 
      int start = textBox.TextLength; 
      textBox.Text += user + " says: " + msg; 
      int end = textBox.TextLength; 
      textBox.Select(start, end - start); 
      Font font = (Font)fc.ConvertFromString(strFont); 
      Color colour = (Color)cc.ConvertFromString(strColour); 
      string s = textBox.SelectedText; 
      textBox.SelectionFont = font; 
      textBox.SelectionColor = colour; 
     } 

任何想法有什麼不對?字符串s表明它確實只選擇了換行符。

回答

0
void OutBox(RichTextBox textBox, string user, string msg, string strFont, string strColour) 
     { 
      string s = user + " says: " + msg + "\r"; 
      textBox.AppendText(s); 
      textBox.SelectionStart = textBox.TextLength - s.Length; 
      textBox.SelectionLength = s.Length; 
      Font font = (Font)fc.ConvertFromString(strFont); 
      Color colour = (Color)cc.ConvertFromString(strColour); 
      string s1 = textBox.SelectedText; 
      textBox.SelectionFont = font; 
      textBox.SelectionColor = colour; 
     } 

顯然使用textBox.AppendText代替textBox.Text + =解決了問題。

任何人都知道爲什麼?