winform中richtextbox的字体颜色设置

s252718778 2010-01-07 06:25:07
我做了个聊天软件 发消息的框是richtextbox1 显示消息的框为richtextbox2

我想将 时间 和 发送人 这行 设置为 蓝色

先用richTextBox2.Select(start,length);选择要更改的文本,再用richTextBox2.SelectionColor属性设置颜色

这样成功了 可是我再在richtextbox1里输入内容 发送 前面设置的颜色又复原了 只有刚发送的内容的 时间 和 发送人 才显示为蓝色
...全文
1454 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayqean 2010-01-11
  • 打赏
  • 举报
回复
LZ这种问题应该是 AppendText()
+= 的话 会出现LZ所说的情况 顺便给端代码

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();
}
tianliang1 2010-01-07
  • 打赏
  • 举报
回复
不会吧,你重绘了RichTextBox没有什么呀,你总不是自己新写的,应该是继承的,如果没有修改它相关属性是不会出现你说的情况。。。
s252718778 2010-01-07
  • 打赏
  • 举报
回复
没有人顶呀!我那问题可能是 因为 控件 重绘了
导致前面绘制的 复原了
unling 2010-01-07
  • 打赏
  • 举报
回复
我的列子
   private void button1_Click_1(object sender, EventArgs e)
{
string strChars = richTextBox1.Text;
int iOldLength=0;

iOldLength = richTextBox2.Text.Length;

richTextBox2.AppendText(Environment.NewLine + strChars);

if (strChars == "ni")
{
richTextBox2.Select(iOldLength, richTextBox2.Text.Length);
richTextBox2.SelectionColor = Color.Red;
}
else
{
richTextBox2.Select(iOldLength, richTextBox2.Text.Length);
richTextBox2.SelectionColor = Color.Black;
}
}
}

if (strChars == "ni") 这里你来判断是不是要改变颜色了,
我的例子是传递的字符串是ni时变成红色否则是黑子
ProjectDD 2010-01-07
  • 打赏
  • 举报
回复
学习下

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧