当前位置: 首页 > news >正文

合肥网站seowordpress 网页目录下

合肥网站seo,wordpress 网页目录下,建站过程,wordpress数据文件在Windows应用程序开发中#xff0c;刚刚介绍了WPF版的利用RichTextBox实现文本编辑器#xff0c;今天继续推出WinForm版的利用RichTextBox实现文本编辑器。本文利用一个简单的小例子#xff0c;简述如何在WinForm开发中#xff0c;利用RichTextBox开发文本编辑器#xff…在Windows应用程序开发中刚刚介绍了WPF版的利用RichTextBox实现文本编辑器今天继续推出WinForm版的利用RichTextBox实现文本编辑器。本文利用一个简单的小例子简述如何在WinForm开发中利用RichTextBox开发文本编辑器以及RichTextBox的用法仅供学习分享使用如有不足之处还请指正。 Windows窗体中的RichTextBox控件用于显示输入和操作格式化的文本RichTextBox除了拥有TextBox控件的所有功能外还可以显示字体颜色链接从文件中读取和加载图像以及查找指定的字符。RichTextBox控件通常用于提供类似字体处理程序如Microsoft Word的文本操作和显示功能。RichTextBox控件可以显示滚动条且默认根据需要进行显示。 涉及知识点 在本示例中涉及知识点如下所示 SelectionFont 获取或设置当前选定文本或插入点的字体。 FontStyle 指定应用到文本的字形信息。 SelectionAlignment  获取或设置应用到当前选定内容或插入点的对齐方式。 SelectionIndent 获取或设置所选内容开始行的缩进距离以像素为单位。 SelectionCharOffset 获取或设置控件中的文本是显示在基线上、作为上标还是作为基线下方的下标。 SelectionColor 获取或设置当前选定文本或插入点的文本颜色。 SelectionBackColor   获取或设置在 System.Windows.Forms.RichTextBox 控件中选中文本时文本的颜色。 SelectionBullet 获取或设置一个值通过该值指示项目符号样式是否应用到当前选定内容或插入点。 Clipboard Paste 粘贴指定剪贴板格式的剪贴板内容【插入图片时使用】。 Find 在对搜索应用特定选项的情况下在 System.Windows.Forms.RichTextBox 控件的文本中搜索位于控件内特定位置的字符串。 核心代码 1. 定义接口 为了规范和统一定义实现样式接口IRichFormat如下所示 namespace DemoRichText.Model {/// summary/// 富文本框格式/// /summarypublic interface IRichFormat{void SetFormat(RichTextBox rtbInfo);} } 2. 实现样式基类 定义一个接口的默认实现基类BaseRichFormat此基类是抽象类如下所示 namespace DemoRichText.Model {public abstract class BaseRichFormat : IRichFormat{public abstract void SetFormat(RichTextBox rtbInfo);} } 3. 具体实现方法 具体到每一个功能样式设置均继承自BaseRichFormat如下所示 namespace DemoRichText.Model {public class DefaultRickFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){}}/// summary/// 加粗格式/// /summarypublic class BoldRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){Font oldFont rtbInfo.SelectionFont;Font newFont;if (oldFont.Bold){newFont new Font(oldFont, oldFont.Style ~FontStyle.Bold);//支持位于运算}else{newFont new Font(oldFont, oldFont.Style | FontStyle.Bold);}rtbInfo.SelectionFont newFont;}}/// summary/// 斜体/// /summarypublic class ItalicRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){Font oldFont rtbInfo.SelectionFont;Font newFont;if (oldFont.Italic){newFont new Font(oldFont, oldFont.Style ~FontStyle.Italic);}else{newFont new Font(oldFont, oldFont.Style | FontStyle.Italic);}rtbInfo.SelectionFont newFont;rtbInfo.Focus();}}/// summary/// 下划线/// /summarypublic class UnderLineRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){Font oldFont rtbInfo.SelectionFont;Font newFont;if (oldFont.Underline){newFont new Font(oldFont, oldFont.Style ~FontStyle.Underline);}else{newFont new Font(oldFont, oldFont.Style | FontStyle.Underline);}rtbInfo.SelectionFont newFont;rtbInfo.Focus();}}/// summary/// 删除线/// /summarypublic class StrikeLineRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){Font oldFont rtbInfo.SelectionFont;Font newFont;if (oldFont.Underline){newFont new Font(oldFont, oldFont.Style ~FontStyle.Strikeout);}else{newFont new Font(oldFont, oldFont.Style | FontStyle.Strikeout);}rtbInfo.SelectionFont newFont;rtbInfo.Focus();}}/// summary/// 左对齐/// /summarypublic class LeftRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){rtbInfo.SelectionAlignment HorizontalAlignment.Left;rtbInfo.Focus();}}/// summary/// 居中对齐/// /summarypublic class CenterRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){if (rtbInfo.SelectionAlignment HorizontalAlignment.Center){rtbInfo.SelectionAlignment HorizontalAlignment.Left;}else{rtbInfo.SelectionAlignment HorizontalAlignment.Center;}rtbInfo.Focus();}}/// summary/// 右对齐/// /summarypublic class RightRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){if (rtbInfo.SelectionAlignment HorizontalAlignment.Right){rtbInfo.SelectionAlignment HorizontalAlignment.Left;}else{rtbInfo.SelectionAlignment HorizontalAlignment.Right;}rtbInfo.Focus();}}/// summary/// 缩进对齐/// /summarypublic class IndentRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){//每次以10个像素进行缩进rtbInfo.SelectionIndent rtbInfo.SelectionIndent 10;rtbInfo.Focus();}}/// summary/// 缩进对齐/// /summarypublic class OutIndentRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){//每次以10个像素进行缩进rtbInfo.SelectionIndent rtbInfo.SelectionIndent - 10;rtbInfo.Focus();}}/// summary/// 下标/// /summarypublic class SubScriptRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){if (rtbInfo.SelectionCharOffset 0){rtbInfo.SelectionCharOffset 0;}else {rtbInfo.SelectionCharOffset -5;}rtbInfo.Focus();}}/// summary/// 上标/// /summarypublic class SuperScriptRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){if (rtbInfo.SelectionCharOffset 0){rtbInfo.SelectionCharOffset 0;}else {rtbInfo.SelectionCharOffset 5;}rtbInfo.Focus();}}/// summary/// 字体/// /summarypublic class FontRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){FontDialog f new FontDialog();if (f.ShowDialog() DialogResult.OK){FontFamily family f.Font.FontFamily;rtbInfo.SelectionFont new Font(family, rtbInfo.SelectionFont.Size, rtbInfo.SelectionFont.Style);}rtbInfo.Focus();}}/// summary/// 文本颜色/// /summarypublic class ForeColorRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){ColorDialog f new ColorDialog();if (f.ShowDialog() DialogResult.OK){rtbInfo.SelectionColor f.Color;}rtbInfo.Focus();}}/// summary/// 文本背景颜色/// /summarypublic class BgColorRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){ColorDialog f new ColorDialog();if (f.ShowDialog() DialogResult.OK){rtbInfo.SelectionBackColor f.Color;}rtbInfo.Focus();}}/// summary/// UL列表,项目符号样式/// /summarypublic class UlRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){if (rtbInfo.SelectionBullet){rtbInfo.SelectionBullet false;}else {rtbInfo.SelectionBullet true;rtbInfo.BulletIndent 10;}rtbInfo.Focus();}}/// summary/// 图片插入/// /summarypublic class PicRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){OpenFileDialog o new OpenFileDialog();o.InitialDirectory AppDomain.CurrentDomain.BaseDirectory;o.Title 请选择图片;o.Filter jpeg|*.jpeg|jpg|*.jpg|png|*.png|gif|*.gif;if (o.ShowDialog() DialogResult.OK) {string fileName o.FileName;try{Image bmp Image.FromFile(fileName);Clipboard.SetDataObject(bmp);DataFormats.Format dataFormat DataFormats.GetFormat(DataFormats.Bitmap);if (rtbInfo.CanPaste(dataFormat)){rtbInfo.Paste(dataFormat);}}catch (Exception exc){MessageBox.Show(图片插入失败。 exc.Message, 提示,MessageBoxButtons.OK, MessageBoxIcon.Information);}}rtbInfo.Focus();}}/// summary/// 删除/// /summarypublic class DelRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){rtbInfo.SelectedText ;rtbInfo.Focus();}}/// summary/// 查找/// /summarypublic class SearchRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){string find rtbInfo.Tag.ToString();int index rtbInfo.Find(find, 0,RichTextBoxFinds.None);int startPos index;int nextIndex 0;while (nextIndex ! startPos)//循环查找字符串并用蓝色加粗12号Times New Roman标记之{rtbInfo.SelectionStart index;rtbInfo.SelectionLength find.Length;rtbInfo.SelectionColor Color.Blue;rtbInfo.SelectionFont new Font(Times New Roman, (float)12, FontStyle.Bold);rtbInfo.Focus();nextIndex rtbInfo.Find(find, index find.Length, RichTextBoxFinds.None);if (nextIndex -1)//若查到文件末尾则充值nextIndex为初始位置的值使其达到初始位置顺利结束循环否则会有异常。{nextIndex startPos;}index nextIndex;}rtbInfo.Focus();}}/// summary/// 打印/// /summarypublic class PrintRichFormat : BaseRichFormat{private RichTextBox richTextbox;public override void SetFormat(RichTextBox rtbInfo){this.richTextbox rtbInfo;PrintDocument pd new PrintDocument();pd.PrintPage new PrintPageEventHandler(pd_PrintPage);// 打印文档pd.Print();}private void pd_PrintPage(object sender, PrintPageEventArgs ev){//ev.Graphics.DrawString(richTextbox.Text);//ev.HasMorePages true;}}/// summary/// 字体大小/// /summarypublic class FontSizeRichFormat : BaseRichFormat{public override void SetFormat(RichTextBox rtbInfo){string fontSize rtbInfo.Tag.ToString();float fsize 0.0f;if (float.TryParse(fontSize, out fsize)) {rtbInfo.SelectionFont new Font(rtbInfo.Font.FontFamily, fsize, rtbInfo.SelectionFont.Style);}rtbInfo.Focus();}} } 4. 实现工厂模式 因为所有实现都基于同一个接口所以进一步封装样式设置的实现类如下所示 ​​​​​​​ namespace DemoRichText.Model {public class RichFormatFactory{public static IRichFormat CreateRichFormat(BTNType btnType){IRichFormat richFormat;switch (btnType){case BTNType.Bold:richFormat new BoldRichFormat();break;case BTNType.BGColor:richFormat new BgColorRichFormat();break;case BTNType.Center:richFormat new CenterRichFormat();break;case BTNType.Del:richFormat new DelRichFormat();break;case BTNType.Font:richFormat new FontRichFormat();break;case BTNType.ForeColor:richFormat new ForeColorRichFormat();break;case BTNType.FontSize:richFormat new FontSizeRichFormat();break;case BTNType.Indent:richFormat new IndentRichFormat();break;case BTNType.Italic:richFormat new ItalicRichFormat();break;case BTNType.Left:richFormat new LeftRichFormat();break;case BTNType.OutIndent:richFormat new OutIndentRichFormat();break;case BTNType.Pic:richFormat new PicRichFormat();break;case BTNType.Print:richFormat new PrintRichFormat();break;case BTNType.Right:richFormat new RightRichFormat();break;case BTNType.Search:richFormat new SearchRichFormat();break;case BTNType.StrikeLine:richFormat new StrikeLineRichFormat();break;case BTNType.SubScript:richFormat new SubScriptRichFormat();break;case BTNType.SuperScript:richFormat new SuperScriptRichFormat();break;case BTNType.Ul:richFormat new UlRichFormat();break;case BTNType.UnderLine:richFormat new UnderLineRichFormat();break;default:richFormat new DefaultRickFormat();break;}return richFormat;}} } 5. UI页面代码 由于实现了代码封装所有页面代码较少如下所示 namespace DemoRichText {public partial class MainForm : Form{public MainForm(){InitializeComponent();}public void btnButtonClick(object sender, EventArgs e) {Button btn (Button)sender;BTNType btnType;if (Enum.TryParseBTNType(btn.Tag.ToString(), out btnType)) {if (btnType BTNType.Search) {if (!string.IsNullOrEmpty(this.txtSearch.Text.Trim())){this.rtbInfo.Tag this.txtSearch.Text.Trim();}else {return;}}IRichFormat richFomat RichFormatFactory.CreateRichFormat(btnType);richFomat.SetFormat(this.rtbInfo);}}private void combFontSize_SelectedIndexChanged(object sender, EventArgs e){float fsize 12.0f;if (combFontSize.SelectedIndex -1) {if (float.TryParse(combFontSize.SelectedItem.ToString(), out fsize)) {rtbInfo.Tag fsize.ToString();IRichFormat richFomat RichFormatFactory.CreateRichFormat(BTNType.FontSize);richFomat.SetFormat(this.rtbInfo);}return;}}} } 示例效果图 设置文本对应的格式具体如下所示 源码下载 关于源码下载可关注公众号并回复关键字WINRICH即可如下所示 以上就是【详解C#之WinForm版利用RichTextBox 制作文本编辑器】的全部内容关于更多详细内容可参考官方文档。希望能够一起学习共同进步。
http://www.pierceye.com/news/326710/

相关文章:

  • 深圳工程造价建设信息网站php网站建设题目
  • 龙岗网站制作织梦整合wordpress
  • 代做效果图网站哪家好汉中市建设局网站
  • 东阳海天建设集团网站网站蜘蛛爬行统计
  • asp企业网站cms北京大型网站建设公司
  • 网站要多钱杭州排名优化公司电话
  • 怎么在网站中添加百度商桥南京营销网站建设
  • 沈阳火车站wordpress的vieu主题破解版
  • 食品网站建设 网站定制开发微网站建设的第一步是进行首页的设置
  • 一站式装修公司有哪些500人在线网站建设配置
  • 郴州网站制作哪个网站可以做市场调研报告
  • 劲松网站建设公司做运营需要具备什么能力
  • 企业建设网站是网络营销吗17网站一起做网店新塘
  • 电子书籍网站开发重庆网站建设快速建站
  • 广州 企业网站建设公司网页设计模板
  • 长安网站建设制作价格乐清网站
  • 小游戏网站怎么做建站徐州seo代理计费
  • 苏州网站建设数据网络淘宝网店怎么运营起来
  • 网站建设项目实战实训报告凡科建网站
  • 网站建设程序编制做网站优化的教程
  • 已有网站 需要整改 怎么做信息网官网
  • 中石建基础设施建设有限公司网站南阳网站建设的公司
  • 广东建设银行网站营销渠道策略
  • 廊坊开发区规划建设局网站网站域名续费一年多少钱
  • 网站建设需要哪些准备国外网站顶部菜单设计
  • 免费域名注册和免费建站深圳品牌沙发
  • php网站开发就业网站开发研究综述
  • 华升建设集团有限公司网站网站如何做那种诱导广告
  • 做资讯网站要什么手续科技设计公司网站模板下载
  • 西安互联网网站建设湘潭网站建设设计