Welcome

首页 / 软件开发 / .NET编程技术 / RichTextBox扩展控件的中文乱码解决方案

RichTextBox扩展控件的中文乱码解决方案2012-02-18 博客园 伍华聪在程序中有利用RichTextBox进行一些操作的需求,无意中在CodeProject中发现了一个封装比较完整的RichTextBox控件(http://www.codeproject.com/KB/edit/csexrichtextbox.aspx),控件封装的还是不错,测试界面效果如下:

总体来说,支持各种格式的定义以及图片的插入,效果还是相当不错,不过在实际中使用发现,用代码插入的中文内容会出现乱码。

解决方法一:

由于本身对RichTextBox的应用以及RTF格式不是很熟悉,搜索很久不得要领,没有找到好的解决方案,后来发现有一个比较取巧的方法,就是重新利用RichTextBox的机制来生成RTF文档内容,然后传入RTF格式内容给控件实现,代码如下所示:

RichTextBox rtb = new RichTextBox();
rtb.Font = _font;
rtb.Text = _text;
AppendRtf(rtb.Rtf);

上面部分代码用来替换

public void InsertTextAsRtf(string _text, Font _font, RtfColor _textColor, RtfColor _backColor)

函数部分的this.SelectedRtf = _rtf.ToString(); 即可。