C#RichTextBox更改字体(Font)[大小,粗/斜/下划/删除,变色]
2015-09-28 02:46
393 查看
基于 [博客园-《叩响C#之门》-关于RichTextBox修改字体大小的研究]
感谢作者:李雨来 感谢
寒飞雨 的分享。
看了《关于RichTextBox修改字体大小的研究》一文后,根据文中的参考小小的拓展了下功能,
把功能弄成改变字体大小,粗体、斜体、下划、删除线,字符上色。
选中的字符同时具备 粗体、斜体、下划、删除线就要用到 FontStyle。
有两种方式:
FontStyle style = FontStyle.Bold;
style |= FontStyle.Underline;
style |= FontStyle.Italic;
style |= FontStyle.Strikeout;
或
FontStyle style = (FontStyle)(FontStyle.Bold |FontStyle.Italic |FontStyle.Underline
| FontStyle.Strikeout);
上面少复制了个‘}’ 注意添加就好。
下面的 changeFontSize 方法 放在加载项 或 button1_Click 中。
注意一下 changeFontSize 方法 的第三个参数,参数3 > =16 或 =0 ,字体样式为 style = FontStyle.Regular;(普通样式) 粗、斜、下划、删除没有了。
上面的 changeFontSize 方法 +4重载。
去掉注释轮流试一下。
上效果图:
感谢作者:李雨来 感谢
寒飞雨 的分享。
看了《关于RichTextBox修改字体大小的研究》一文后,根据文中的参考小小的拓展了下功能,
把功能弄成改变字体大小,粗体、斜体、下划、删除线,字符上色。
选中的字符同时具备 粗体、斜体、下划、删除线就要用到 FontStyle。
有两种方式:
FontStyle style = FontStyle.Bold;
style |= FontStyle.Underline;
style |= FontStyle.Italic;
style |= FontStyle.Strikeout;
或
FontStyle style = (FontStyle)(FontStyle.Bold |FontStyle.Italic |FontStyle.Underline
| FontStyle.Strikeout);
public static class SetFontSytyle { #region =★=*=*=★= 设置选中字体样式 =★=*=*=★= //1.粗体 2.斜体 3.下划线 4.删除线 //5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线 //11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线 //15.粗、斜、下、删 /// <summary> 设置选中字体样式(1) <para> </para> /// 此方法有五种形式:<para> </para> /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para> /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色<para> </para></summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param> public static void changeFontSize(RichTextBox rich, float fontsize) { int selStart = rich.SelectionStart; int selLen = rich.SelectionLength; int selEnd = selStart + selLen; changeHelp(rich, selStart, selEnd, fontsize); rich.Select(selStart, selLen); } /// <summary> 设置选中字体样式(2) <para> </para> /// 此方法有五种形式:<para> </para> /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para> /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param> /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param> public static void changeFontSize(RichTextBox rich, float fontsize, FontStyle style) { int selStart = rich.SelectionStart; int selLen = rich.SelectionLength; int selEnd = selStart + selLen; changeHelp(rich, selStart, selEnd, fontsize, style); rich.Select(selStart, selLen); } /// <summary> 设置选中字体样式(3) <para> </para> /// 此方法有五种形式:<para> </para> /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para> </para> /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param> /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param> /// <param name="color">设置选中字体颜色</param> public static void changeFontSize(RichTextBox rich, float fontsize, FontStyle style, Color color) { int selStart = rich.SelectionStart; int selLen = rich.SelectionLength; int selEnd = selStart + selLen; changeHelp(rich, selStart, selEnd, fontsize, style, color); rich.Select(selStart, selLen); } /// <summary> 设置选中字体样式(4) <para> </para> /// 此方法有五种形式:<para></para> /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para></para> /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param> /// <param name="cont">Int值 十六种字体样式 以下数字代表:<para></para> /// 1.粗体 2.斜体 3.下划线 4.删除线 <para></para> /// 5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线<para></para> /// 11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线<para></para> /// 15.粗、斜、下、删</param> public static void changeFontSize(RichTextBox rich, float fontsize, int cont) { int selStart = rich.SelectionStart; int selLen = rich.SelectionLength; int selEnd = selStart + selLen; changeHelp(rich, selStart, selEnd, fontsize, FontStyleBius(cont)); rich.Select(selStart, selLen); } /// <summary> 设置选中字体样式(5) <para> </para> /// 此方法有五种形式:<para></para> /// 1.)只改变字体大小 <para></para>2.)在1的基本上,粗、斜体、下划线、删除线样式 /// <para></para>3.)在2的基本上,高亮模式(字体上色)<para></para> /// 4.)可同时设置〖FontStyle〗多样化 <para></para>5.)在4的基本上设置字体颜色 </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="fontsize">设置选中字体大小,设置时应为(0.5)的倍数。</param> /// <param name="cont">Int值 十六种字体样式 以下数字代表:<para></para> /// 1.粗体 2.斜体 3.下划线 4.删除线 <para></para> /// 5.粗体+斜体 6.粗体+下划线 7.粗体+删除线 8.斜体+下划线 9.斜体+删除线 10.下划线+删除线<para></para> /// 11.斜体+下划线+删除线 12.粗体+下划线+删除线 13.粗体+斜体+删除线 14.粗体+斜体+下划线<para></para> /// 15.粗、斜、下、删</param> /// <param name="color">设置选中字体颜色</param> public static void changeFontSize(RichTextBox rich, float fontsize, int cont, Color color) { int selStart = rich.SelectionStart; int selLen = rich.SelectionLength; int selEnd = selStart + selLen; changeHelp(rich, selStart, selEnd, fontsize, FontStyleBius(cont), color); rich.Select(selStart, selLen); } #endregion #region =★=*=*=★= 设置字体样式〖调用方法〗 =★=*=*=★= /// <summary> 设置字体样式(一) /// <para></para> </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="start">选中文本位置,从(0)开始计算</param> /// <param name="end">选中文本长度</param> /// <param name="fontsize">设置选中字体大小</param> private static void changeHelp(RichTextBox rich, int start, int length, float fontsize) { rich.Select(start, length - start); if (rich.SelectionFont != null) { Font oldFont = rich.SelectionFont; rich.SelectionFont = new Font(oldFont.Name, fontsize); } else { int mid = (start + length) / 2; changeHelp(rich, start, mid, fontsize); changeHelp(rich, mid, length, fontsize); } } /// <summary> 设置字体样式(二) /// <para></para> </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="start">选中文本位置,从(0)开始计算</param> /// <param name="end">选中文本长度</param> /// <param name="fontsize">设置选中字体大小</param> /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param> private static void changeHelp(RichTextBox rich, int start, int length, float fontsize, FontStyle style) { rich.Select(start, length - start); if (rich.SelectionFont != null) { Font oldFont = rich.SelectionFont; rich.SelectionFont = new Font(oldFont.Name, fontsize, style); } else { int mid = (start + length) / 2; changeHelp(rich, start, mid, fontsize, style); changeHelp(rich, mid, length, fontsize, style); } } /// <summary> 设置字体样式(三) /// <para></para> </summary> /// <param name="rich">RichTextBox 控件</param> /// <param name="start">选中文本位置,从(0)开始计算</param> /// <param name="end">选中文本长度</param> /// <param name="fontsize">设置选中字体大小</param> /// <param name="style">字体样式:普通,粗体,斜体,删除线,下划线 样式</param> /// <param name="color">设置字体颜色</param> private static void changeHelp(RichTextBox rich, int start, int length, float fontsize, FontStyle style, Color color) { rich.Select(start, length - start); if (rich.SelectionFont != null) { Font oldFont = rich.SelectionFont; rich.SelectionFont = new Font(oldFont.Name, fontsize, style); rich.SelectionColor = color; } else { int mid = (start + length) / 2; changeHelp(rich, start, mid, fontsize, style, color); changeHelp(rich, mid, length, fontsize, style, color); } } /// <summary> FontStyle 多样化 </summary> /// <param name="i"></param> /// <returns></returns> private static FontStyle FontStyleBius(int i) { FontStyle style; switch (i) { case 1: style = FontStyle.Bold; return style; case 2: style = FontStyle.Italic; return style; case 3: style = FontStyle.Underline; return style; case 4: style = FontStyle.Strikeout; return style; case 5: style = (FontStyle)(FontStyle.Bold | FontStyle.Italic); return style; case 6: style = (FontStyle)(FontStyle.Bold | FontStyle.Underline); return style; case 7: style = (FontStyle)(FontStyle.Bold | FontStyle.Strikeout); return style; case 8: style = (FontStyle)(FontStyle.Italic | FontStyle.Underline); return style; case 9: style = (FontStyle)(FontStyle.Italic | FontStyle.Strikeout); return style; case 10: style = (FontStyle)(FontStyle.Underline | FontStyle.Strikeout); return style; case 11: style = (FontStyle)(FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout); return style; case 12: style = (FontStyle)(FontStyle.Bold | FontStyle.Underline | FontStyle.Strikeout); return style; case 13: style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Strikeout); return style; case 14: style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline); return style; case 15: style = (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout); return style; default: style = FontStyle.Regular; return style; } } #endregion 少复制了个 ‘}’
上面少复制了个‘}’ 注意添加就好。
下面的 changeFontSize 方法 放在加载项 或 button1_Click 中。
注意一下 changeFontSize 方法 的第三个参数,参数3 > =16 或 =0 ,字体样式为 style = FontStyle.Regular;(普通样式) 粗、斜、下划、删除没有了。
private void button2_Click(object sender, EventArgs e) { richTextBox1.Select(2, 35); SetFontSytyle.changeFontSize(richTextBox1, 14); //SetFontSytyle.changeFontSize(richTextBox1, 14, FontStyle.Bold); //SetFontSytyle.changeFontSize(richTextBox1, 14, FontStyle.Bold, Color.Red); //SetFontSytyle.changeFontSize(richTextBox1, 14, (FontStyle)(FontStyle.Bold | FontStyle.Italic | FontStyle.Underline), Color.Red); //SetFontSytyle.changeFontSize(richTextBox1, 14, 15); //SetFontSytyle.changeFontSize(richTextBox1, 14, 15, Color.Red); }
上面的 changeFontSize 方法 +4重载。
去掉注释轮流试一下。
上效果图:
相关文章推荐
- c#中命名空间、类、方法的关系
- C#中的输出
- C#中变量的理解(其它语言通用)
- C#中时刻需留意的(持续更新)
- c#中的“+”和占位符
- C#中&quot;解决方案&quot;和&quot;项目&quot;的理解
- [C#基础] 继承
- C#调用带返回值的存储过程
- C#反射和特性
- C#开发中使用配置文件
- C#控制台程序取得INSOYA视频区的视频的真实URL,视频标题,发布时间集合。
- 准确得到时间格式的方法,C#里面很多的种方法试过后都有问题,只能按此方法没有问题
- c# ThreadPoold使用心得
- 《叩响C#之门》RichTextBox修改字体大小的研究
- C# WindowsForm 员工管理系统四【发放工资】
- c#中的Rank属性和GetUpperBound,GetLowerBound(0)方法
- C# 动态数组
- 匹夫细说C#:可以为null的值类型,详解可空值类型
- C#----委托和事件(一)
- C#读写INI文件的方法