winForm中RichTextBox富文本框的使用
创建一个RichTextBox控件
- 属性
a. 行为-EnableAutoDragDrop:True 允许拖拽
- 打开文件
先添加一个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");}
- 链接跳转
注册RichTextBox的LinkClicked事件
private void myNote_LinkClicked(object sender, LinkClickedEventArgs e){System.Diagnostics.Process.Start(e.LinkText);}
- 右键复制、粘贴
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绑定到富文本框
- 插入图片
创建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();}}
- 撤销与重做
创建button
//撤销private void unDo_Click(object sender, EventArgs e){myNote.Undo();}//重做private void reDo_Click(object sender, EventArgs e){myNote.Redo();}
- 清空(含清空确认按钮)
创建button
private void clear_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("是否要清空MyNote中的所有内容?","清空确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);if(result == DialogResult.Yes){myNote.Clear();}}
- 设计器界面
- 完整代码
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富文本框的使用相关推荐
- vue中wangeditor富文本框的使用方法
vue中使用的富文本插件最多的就是 wangeditor 和 vue-quill-editor .开始我用的是 vue-quill-editor,后来又换成了 wangeditor.为啥呢?因为 vu ...
- vue中的富文本框的使用(vue-quill-editor)
一.安装 vue-quill-editor npm install vue-quill-editor 二.在main.js中引入 import VueQuillEditor from 'vue-qui ...
- 若依前后端分离发布富文本框内容 | uni-app微信小程序展示富文本框内容
微信小程序端引入富文本样式 富文本提交图片json error 一.展示示例: 1.PC端前端发布界面 可以设置文字大小,居中,可以插入图片,设置图片大小,居中. 2.小程序端展示 二.基于若依框架踩 ...
- 【Django 027】tinymce富文本框使用详解
针对博客和论坛类网站,用户需要在网页的富文本框中输入内容传递到后端.那么Django项目如何生成一个包含富文本框的页码,又如何获取用户上传的富文本内容呢?这一节我们就一起来看看. 我是T型人小付,一位 ...
- uniapp 电商app 富文本框的使用——添加图文功能
uniapp 富文本框的使用 uniapp中是有富文本框组件的. uniapp中的富文本框组件的使用官网链接:https://uniapp.dcloud.io/component/editor?id= ...
- uniapp 发布文章app 富文本框的使用——添加图文功能
uniapp 富文本框的使用 uniapp中是有富文本框组件的. uniapp中的富文本框组件的使用官网链接:https://uniapp.dcloud.io/component/editor?id= ...
- php文本框长度限制,php截取富文本框中的固定长度的字符
ai,哎怎么赶脚自己写东西越来越小儿科了呢,现在连这个问题都找了好半天 因为后台是的内容是富文本编辑器编辑的,前台我傻逼的直接截取了字符串,然后样式啥的都乱了,找了半天是因为富文本的问题 其实解决办法 ...
- selenium python 文本框输入信息_selenium python向富文本框中输入内容
基于本人不会JavaScript,不能像大神一样写出很牛X的方法,只能使用者屌丝方法了,不过很容易理解. 我使用的是ueditor富文本框 1.我的富文本框是在一个iframe中,进入iframe的方 ...
- vue中如何使用wangEditor 富文本框
在做后台管理项目时常常会用到富文本编辑器,在这里推荐大家使用wangEditor,亲测好用 话不多说先上图 第一步安装 npm wangeditor --save 第二步在项目中使用 先建立一个wan ...
最新文章
- HDU 4256 翻译罗马数字
- 引入mysql+命名空间_C#连接MySQL操作详细教程
- 18岁学计算机专业好不好,我18岁,学计算机编程,请问有没有什么书或者方法可以提高记忆力的?...
- Node.js 路由的简单使用
- 通过python连接mysql模拟成绩查询系统
- 【数据结构】4.1图的创建及DFS深度遍历(不完善)
- Linux设备驱动模型之platform(平台)总线详解
- [开源]基于WPF实现的Gif图片分割器,提取GIf图片中的每一帧
- 转: gob编解码
- 亚信科技外包_外包到亚信---转正疑问 - 菜鸟@大虾的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 浅谈认识商业智能过程中遇到的困难
- python调用高德地图地理编码/逆地理编码
- mysql 未找到 WinSxS_window_win7系统如何使用WinSxS工具安全删除WinSxS文件夹垃圾?,WinSxS文件:
WinSxS是系统文件Wi - phpStudy...
- Sketch 快捷键速记表(中英对照)
- SIM900A发送数据到新浪云服务器
- 使用Python打印爱心
- L1-054 福到了 (15 分)C语言
- latex tips 偏导数符号 单词partial+倒三角 \nabla
- 二进制安全之NX绕过方法--ROP技术
- 数据库里面date类型时间有时差,时区问题