在做一个局域网聊天的小软件,比如2个人在聊天,我想让对方发来的消息在richTextBox1的字体是黑色的!我自己发的消息在richTextBox1是红色的!  请问怎么实现?  感谢大家指教!

解决方案 »

  1.   

    Graphics g= richTextBox1.CreateGraphics();
     g.DrawString(......);想通过richTextBox1属性来修改貌似是不能显示两种淹死的。
    还是用GDI+吧
      

  2.   

    代码来自http://bingning.net/free/source/control/rtbchangecolorandfont.html//颜色设定为红色
     RichTextBox1.SelectionColor = Color.Red;
     //追加设定为Boid的FontStyle
     Font fnt = new Font(RichTextBox1.SelectionFont.FontFamily,
         RichTextBox1.SelectionFont.Size,
         RichTextBox1.SelectionFont.Style | FontStyle.Bold);
     //字体变更
     RichTextBox1.SelectionFont = fnt;
     //插入字符串
     RichTextBox1.SelectedText = "插入字符串";
     fnt.Dispose();
      

  3.   

    刚研究过,请看这个方法和下面的使用。 
    关键是 AppendText 方法!/// <summary>
            /// 向RichTextBox添加有样式的文本内容。
            /// </summary>
            /// <param name="rtb">RichTextBox 控件</param>
            /// <param name="strInput">添加的内容</param>
            /// <param name="fontColor">颜色</param>
            public void disply(ref RichTextBox rtb, string strInput, Color fontColor)
            {
                int p1 = rtb.TextLength;  //取出未添加时的字符串长度。
                rtb.AppendText(strInput + "\n");   //保留每行的所有颜色。 //  rtb.Text += strInput + "\n";   //添加时,仅当前行有颜色。
                int p2 = strInput.Length;  //取出要添加的文本的长度
                rtb.Select(p1, p2);        //选中要添加的文本
                rtb.SelectionColor = fontColor;   //设置要添加的文本的字体色
                //rtb.Refresh();
            } /// <summary>
            /// 用法例子
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btn_add2_Click(object sender, EventArgs e)
            {
                string addstr = "NewContent_RandomColor";            Color[] color = new Color[10];  //随机颜色值
                color[0] = Color.Black;
                color[1] = Color.Aquamarine;
                color[2] = Color.Blue;
                color[3] = Color.Brown;
                color[4] = Color.Red;
                Random s = new Random();            int ss = s.Next(1, 5);  //随机号
                addstr += ss.ToString();
                disply(ref richTextBox1, addstr, color[ss]);   //调用方法            richTextBox1.Focus();
                richTextBox1.SelectionStart = richTextBox1.Text.Length;//光标放到最后一行
                btn_add2.Focus();
            }
      

  4.   

    可以以特殊格式存储你的数据
    比如<color ="#FF00FF"></color>,读取数据的时候解析下就好了
      

  5.   


            Me.RichTextBox1.SelectionColor = Color.Red
            Me.RichTextBox1.AppendText("紅的")
            Me.RichTextBox1.SelectionColor = Color.Blue
            Me.RichTextBox1.AppendText("藍的")
            Me.RichTextBox1.SelectionColor = Color.Green
            Me.RichTextBox1.AppendText("綠的")正好以前看到过,没有想的那么复杂