创建一个RichTextBox控件

  • 属性
    a. 行为-EnableAutoDragDrop:True 允许拖拽
  1. 打开文件
    先添加一个button按钮,注册单击事件表示打开某个文件
 private void open_Click(object sender, EventArgs e){//创建一个打开文件对话框OpenFileDialog openFile1 = new OpenFileDialog();//限定打开文件的初始化文件目录openFile1.InitialDirectory = "D:\\CSharp";//筛选打开文件的类型为RTF格式openFile1.DefaultExt = "*.rtf";openFile1.Filter = "RTF Files|*.rtf";//判断用户是否从打开文件对话框中选择了一个文件if(openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK&&openFile1.FileName.Length>0){myNote.LoadFile(openFile1.FileName);}//用ANSI编码格式保存txt文本避免出现乱码//myNote.LoadFile("D:\\CSharp\\notes\\test.txt", RichTextBoxStreamType.PlainText);//myNote.LoadFile("D:\\CSharp\\notes\\test.rtf", RichTextBoxStreamType.RichText);}

对于txt文件,如果不是ANSI编码格式的如何解决?
2. 保存文件
同样添加一个button按钮,表示保存按钮,注册单击事件

private void save_Click(object sender, EventArgs e){SaveFileDialog saveFile1 = new SaveFileDialog();saveFile1.InitialDirectory = "D:\\CSharp";saveFile1.DefaultExt = "*.rtf";saveFile1.Filter = "RTF Files|*.rtf";if(saveFile1.ShowDialog() ==System.Windows.Forms.DialogResult.OK&&saveFile1.FileName.Length>0){myNote.SaveFile(saveFile1.FileName);}//myNote.SaveFile("D:\\CSharp\\notes\\test.rtf");}
  1. 链接跳转
    注册RichTextBox的LinkClicked事件
private void myNote_LinkClicked(object sender, LinkClickedEventArgs e){System.Diagnostics.Process.Start(e.LinkText);}
  1. 右键复制、粘贴
    a. 创建一个contextMenuScrip,添加项:复制、粘贴
    b. 选中复制:注册其Click事件
    代码:
 private void copy_Click(object sender, EventArgs e){Clipboard.SetText(myNote.SelectedText);}

选中粘贴,注册其Click事件

 private void paste_Click(object sender, EventArgs e){myNote.Paste();}

c. 将该contextMenuScrip绑定到富文本框

  1. 插入图片
    创建button
    代码:
private void image_Click(object sender, EventArgs e){OpenFileDialog openFileDialog1 = new OpenFileDialog();openFileDialog1.DefaultExt = "*.jpg";openFileDialog1.Filter = "Image Files|*.jpg";if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK&&openFileDialog1.FileName.Length>0){Image insertImage = Image.FromFile(openFileDialog1.FileName);Clipboard.SetImage(insertImage);myNote.Paste();}}
  1. 撤销与重做
    创建button
 //撤销private void unDo_Click(object sender, EventArgs e){myNote.Undo();}//重做private void reDo_Click(object sender, EventArgs e){myNote.Redo();}
  1. 清空(含清空确认按钮)
    创建button
 private void clear_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("是否要清空MyNote中的所有内容?","清空确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);if(result == DialogResult.Yes){myNote.Clear();}}
  1. 设计器界面
  2. 完整代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace study_03
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//打开private void open_Click(object sender, EventArgs e){//创建一个打开文件对话框OpenFileDialog openFile1 = new OpenFileDialog();//限定打开文件的初始化文件目录openFile1.InitialDirectory = "D:\\CSharp";//筛选打开文件的类型为RTF格式openFile1.DefaultExt = "*.rtf";openFile1.Filter = "RTF Files|*.rtf";//判断用户是否从打开文件对话框中选择了一个文件if(openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK&&openFile1.FileName.Length>0){myNote.LoadFile(openFile1.FileName);}//用ANSI编码格式保存txt文本避免出现乱码//myNote.LoadFile("D:\\CSharp\\notes\\test.txt", RichTextBoxStreamType.PlainText);//myNote.LoadFile("D:\\CSharp\\notes\\test.rtf", RichTextBoxStreamType.RichText);}//另存为private void save_Click(object sender, EventArgs e){SaveFileDialog saveFile1 = new SaveFileDialog();saveFile1.InitialDirectory = "D:\\CSharp";saveFile1.DefaultExt = "*.rtf";saveFile1.Filter = "RTF Files|*.rtf";if(saveFile1.ShowDialog() ==System.Windows.Forms.DialogResult.OK&&saveFile1.FileName.Length>0){myNote.SaveFile(saveFile1.FileName);}//myNote.SaveFile("D:\\CSharp\\notes\\test.rtf");}//注册链接跳转private void myNote_LinkClicked(object sender, LinkClickedEventArgs e){System.Diagnostics.Process.Start(e.LinkText);}//右键复制private void copy_Click(object sender, EventArgs e){Clipboard.SetText(myNote.SelectedText);}//右键粘贴private void paste_Click(object sender, EventArgs e){myNote.Paste();}//清空private void clear_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("是否要清空MyNote中的所有内容?","清空确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);if(result == DialogResult.Yes){myNote.Clear();}}//插入图片private void image_Click(object sender, EventArgs e){OpenFileDialog openFileDialog1 = new OpenFileDialog();openFileDialog1.DefaultExt = "*.jpg";openFileDialog1.Filter = "Image Files|*.jpg";if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK&&openFileDialog1.FileName.Length>0){Image insertImage = Image.FromFile(openFileDialog1.FileName);Clipboard.SetImage(insertImage);myNote.Paste();}}//撤销private void unDo_Click(object sender, EventArgs e){myNote.Undo();}//重做private void reDo_Click(object sender, EventArgs e){myNote.Redo();}}
}

winForm中RichTextBox富文本框的使用相关推荐

  1. vue中wangeditor富文本框的使用方法

    vue中使用的富文本插件最多的就是 wangeditor 和 vue-quill-editor .开始我用的是 vue-quill-editor,后来又换成了 wangeditor.为啥呢?因为 vu ...

  2. vue中的富文本框的使用(vue-quill-editor)

    一.安装 vue-quill-editor npm install vue-quill-editor 二.在main.js中引入 import VueQuillEditor from 'vue-qui ...

  3. 若依前后端分离发布富文本框内容 | uni-app微信小程序展示富文本框内容

    微信小程序端引入富文本样式 富文本提交图片json error 一.展示示例: 1.PC端前端发布界面 可以设置文字大小,居中,可以插入图片,设置图片大小,居中. 2.小程序端展示 二.基于若依框架踩 ...

  4. 【Django 027】tinymce富文本框使用详解

    针对博客和论坛类网站,用户需要在网页的富文本框中输入内容传递到后端.那么Django项目如何生成一个包含富文本框的页码,又如何获取用户上传的富文本内容呢?这一节我们就一起来看看. 我是T型人小付,一位 ...

  5. uniapp 电商app 富文本框的使用——添加图文功能

    uniapp 富文本框的使用 uniapp中是有富文本框组件的. uniapp中的富文本框组件的使用官网链接:https://uniapp.dcloud.io/component/editor?id= ...

  6. uniapp 发布文章app 富文本框的使用——添加图文功能

    uniapp 富文本框的使用 uniapp中是有富文本框组件的. uniapp中的富文本框组件的使用官网链接:https://uniapp.dcloud.io/component/editor?id= ...

  7. php文本框长度限制,php截取富文本框中的固定长度的字符

    ai,哎怎么赶脚自己写东西越来越小儿科了呢,现在连这个问题都找了好半天 因为后台是的内容是富文本编辑器编辑的,前台我傻逼的直接截取了字符串,然后样式啥的都乱了,找了半天是因为富文本的问题 其实解决办法 ...

  8. selenium python 文本框输入信息_selenium python向富文本框中输入内容

    基于本人不会JavaScript,不能像大神一样写出很牛X的方法,只能使用者屌丝方法了,不过很容易理解. 我使用的是ueditor富文本框 1.我的富文本框是在一个iframe中,进入iframe的方 ...

  9. vue中如何使用wangEditor 富文本框

    在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,亲测好用 话不多说先上图 第一步安装 npm wangeditor --save 第二步在项目中使用 先建立一个wan ...

最新文章

  1. HDU 4256 翻译罗马数字
  2. 引入mysql+命名空间_C#连接MySQL操作详细教程
  3. 18岁学计算机专业好不好,我18岁,学计算机编程,请问有没有什么书或者方法可以提高记忆力的?...
  4. Node.js 路由的简单使用
  5. 通过python连接mysql模拟成绩查询系统
  6. 【数据结构】4.1图的创建及DFS深度遍历(不完善)
  7. Linux设备驱动模型之platform(平台)总线详解
  8. [开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧
  9. 转: gob编解码
  10. 亚信科技外包_外包到亚信---转正疑问 - 菜鸟@大虾的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  11. 浅谈认识商业智能过程中遇到的困难
  12. python调用高德地图地理编码/逆地理编码
  13. mysql 未找到 WinSxS_window_win7系统如何使用WinSxS工具安全删除WinSxS文件夹垃圾?,WinSxS文件: WinSxS是系统文件Wi - phpStudy...
  14. Sketch 快捷键速记表(中英对照)
  15. SIM900A发送数据到新浪云服务器
  16. 使用Python打印爱心
  17. L1-054 福到了 (15 分)C语言
  18. latex tips 偏导数符号 单词partial+倒三角 \nabla
  19. 二进制安全之NX绕过方法--ROP技术
  20. 数据库里面date类型时间有时差,时区问题

热门文章

  1. Nignx优化与防盗链
  2. 新闻发布会新闻稿撰写技巧与发布注意事项
  3. 计算机工考技师人机都考什么,必看|什么是人机对话考试!
  4. 百度输入法每天语音被调度3.35亿次!它的成功可以复制?
  5. 电大计算机人文英语,电大人文英语3until1until8边学边练.docx
  6. tcp option
  7. 大规模医学图像中的计算与学习问题【VALSE Webinar】Panel实录
  8. ORACLE 数据库日常巡检
  9. 云计算医疗行业解决方案的前世今生
  10. iphone编辑过的录音怎么还原_苹果手机录音怎么恢复