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);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
对于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
2
3
4
5
6
7
8
9
10
11
12
13
14
链接跳转
注册RichTextBox的LinkClicked事件
private void myNote_LinkClicked(object sender, LinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(e.LinkText);
}
1
2
3
4
右键复制、粘贴
a. 创建一个contextMenuScrip,添加项:复制、粘贴
b. 选中复制:注册其Click事件
代码:
private void copy_Click(object sender, EventArgs e)
{
Clipboard.SetText(myNote.SelectedText);
}
1
2
3
4
选中粘贴,注册其Click事件

private void paste_Click(object sender, EventArgs e)
{
myNote.Paste();
}
1
2
3
4
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();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
撤销与重做
创建button
//撤销
private void unDo_Click(object sender, EventArgs e)
{
myNote.Undo();
}
//重做
private void reDo_Click(object sender, EventArgs e)
{
myNote.Redo();
}
1
2
3
4
5
6
7
8
9
10
清空(含清空确认按钮)
创建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
3
4
5
6
7
8
设计器界面

完整代码
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();
}
}
}

————————————————
版权声明:本文为CSDN博主「梓阡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_38143506/article/details/115568373

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值