厌倦了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,纯属兴趣爱好,言辞不当望海涵。不知道大家有没有更好的实现方案,欢迎赐教。谢谢。
相关文章推荐
- HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- StudioStyle 使用 厌倦了默认的Visutal Studio样式了,到这里找一个酷的试试
- 在VS2008中使用C#代码打印 RichTextBox 控件的内容[方法采自微软支持][Part 1]
- 在VS2008中使用C#代码打印 RichTextBox 控件的内容[方法采自微软支持][Part 2]
- 在android native层使用logcat打印消息
- HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容
- HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容
- c#.net 文本编辑控件——使用 Visual C# .NET 打印 RichTextBox 控件的内容
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- StudioStyle 使用 厌倦了默认的Visutal Studio样式了,到这里找一个酷的试试
- HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容
- HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容
- 使用 CocoaPods 给微信集成 SDK 打印收发消息
- CListBox & CCheckListBox 使用技巧
- Android message 消息机制介绍及使用 /*自己编写*/
- 使用jsp实现word、excel格式报表打印
- 使用JAVA向微软消息队列(MSMQ)发送和接收消息
- 使用SendMessage方法对窗体上的控件进行截图,该方法的思想就是把控件的句柄拿到,对控件发送WM_PAINT消息,并且把希望得到图形对象的句柄当作wParam参数传过去,这样就可以在图形对象得到想要得图形。