c#.net 文本编辑控件——C# RichTextBox对象中插入文字而不改变文本格式
来源:互联网 发布:武林外传细思极恐 知乎 编辑:程序博客网 时间:2024/06/05 08:24
在用C#编写文本编辑控件时,遇到了这样的问题。就是要求该控件文本标题格式的设置与文本正文格式的设置分开。要求提供打印预览功能。这种功能需求我们很常见,比如我们在CSDN上写文章时,文章标题与文章正文是分开的,我们可以预览已经写好的文章,只是本篇文中的文档编辑控件的需求更细一些,就是能够单独设置标题格式,同时还要求在点击打印预览按钮时,能够看到全文效果,即要包括文章标题和正文,其中文章标题占一行并居中显示。控件UI如下图所示。
我们给当前的富文本框对象取名为curRichTextBox,该对象包含的内容就是文章的正文。当点击“打印预览”按钮时,我们需要深度拷贝一个curRichTextBox原型,使curRichTextBox内容即文章正文不受打印预览的影响,这里相当于设计模式中的原型模式。
由于打印预览时,富文本框的内容要包括标题和正文。那么我们新建一个RichTextBox对象,名为tempRtb。
- string title = tbTitle.Text.ToString() + "/n"; //加换行符使标题独占一行
- //新建一个RichTextBox即tempRtb
- RichTextBox tempRtb = new RichTextBox();
- tempRtb.AppendText(title); //首先添加文章标题
- tempRtb.Select(0, title.Length); //选中文章标题
- tempRtb.SelectionFont = titleFont; //设置标题格式,titleFont是对应于文章标题的Font对象
- tempRtb.SelectionAlignment = HorizontalAlignment.Center; //设置文章标题的对齐格式
- //在文章标题之后,插入文章正文
- tempRtb.SelectionStart = tempRtb.Rtf.Length; //选中tempRtb的标题换行后新的行开头
- tempRtb.SelectedRtf = curRichTextBox.Rtf; //将正文的格式化文本插入到tempRtb被选中的地方
这样,就能够保留被插入文本的格式信息,达到打印预览整篇文章的效果,同时保证了curRichTextBox的内容也没有被改变。如果用tempRtb.Text = tempRtb.Text.insert( start , len )方法或tempRtb.AppendText(curRichTextBox.Rtf.ToString()),就不能保留被插入文本的格式信息,因为这种方法中插入的不含格式信息的字符串。
- c#.net 文本编辑控件——C# RichTextBox对象中插入文字而不改变文本格式
- c#.net 文本编辑控件——C# RichTextBox对象中插入文字而不改变文本格式
- c#.net 文本编辑控件——RichTextBox中插入图片
- c#.net 文本编辑控件——RichTextBox中插入图片
- c#.net 文本编辑控件——使用 Visual C# .NET 打印 RichTextBox 控件的内容
- c#.net 文本编辑控件——设置RichTextBox的字体格式:粗体、斜体、下划线
- c#.net 文本编辑控件——设置RichTextBox的字体和字体大小
- 【C#.NET】RichTextBox控件中各行文本显示不同颜色
- 有格式文本控件RichTextBox(文本类控件)
- C#中RichTextBox 控件介绍
- C#中RichTextBox 控件介绍
- c#控件RichTextBox扩展之插入图片
- VC RichTextBox 控件中文字对齐
- r在richtextbox中插入动画/控件
- .Net (C#) RichTextBox控件实现上下查找
- C#中pictureBox控件随窗口大小而改变大小
- 如何在C#的TreeView控件中双击节点而不改变节点的展开/折叠状态
- C#中操作Word(4)—— 利用Range对象设置文本的格式
- 【LoadRunner】查看脚本请求日志和服务器返回值方法
- 和图相关的智力题
- nginx,haproxy,lvs负载均衡的比较
- 时间函数的用法
- HDU_1695_GCD(欧拉函数+容斥原理+DFS)
- c#.net 文本编辑控件——C# RichTextBox对象中插入文字而不改变文本格式
- ExtJS 如何验证上传文件类型
- 位运算符学习笔记
- 数据库的连接以及实现控制台对对数据的增删查改
- Java中的BoneCP数据库连接池用法
- Linux中find常见用法示例
- Struts2 后台action接收 jsp页面中checkbox中的值
- connections(连接件)——Object和Property的桥梁
- WebStress后将看到程序主界面