您的位置:首页 > 其它

厌倦了ListBox打印消息,使用RichTextBox试试吧

2013-08-02 10:02 211 查看

背景

  Winform打印后台线程运行时消息,习惯用ListBox,有时候某行消息过长,设置个Tooltip控件提示全部信息。后来无意中看到同事使用RichTextBox打印消息,然后在不同的消息类别上加以不同的颜色做区分,倒也不失为一种办法,自己觉得这样还不错,于是找了资料,然后做成例子,特意分享一下。

  常用的消息类别:正常信息、警告信息、错误信息。具体效果见下文。

资源下载

  示例代码下载

  

public void AppendMsg2(Color color, string text)
{
lock (richTextBox1)
{
int p1 = richTextBox1.TextLength;  //取出未添加时的字符串长度。
richTextBox1.AppendText(text + "/n");  //保留每行的所有颜色。 //  rtb.Text += strInput + "/n";  //添加时,仅当前行有颜色。
int p2 = text.Length;  //取出要添加的文本的长度
richTextBox1.Select(p1, p2);        //选中要添加的文本
richTextBox1.SelectionColor = color;  //设置要添加的文本的字体色
}
}


实现二
  方法一是追加空字符串,然后设置格式,接着追加需要显示的文字,和操作Word一样,格式自动与前面保持一致、

  方法二则是记录新加的文本的位置,然后将其选中,接着设置选中文本的颜色。

  这2种方法,在点击控件的时候,均会带来之前提到的问题,文字变成黑色。当然,如果控件的Enable属性为false时,自然是可以避免的。所以折衷下来,使用了上述方案。

  我做Winform,纯属兴趣爱好,言辞不当望海涵。不知道大家有没有更好的实现方案,欢迎赐教。谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐