首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#窗体界面

在C#的RichTextBox控件中添加图片的方法

减小字体 增大字体 作者:biye5u.com  来源:本站原创  发布时间:2011-11-26 16:27:39

自己编写了一个记事本程序,记事本程序使用WinForm的RichTextBox控件实现。这个程序在Windows记事本的基础上添加了改变记事本背景颜色,设置记事本背景图片、改变记事本字体颜色和样式的功能。同时,还想在记事本中添加相关图片,而RichTextBox控件并没有提供添加图片功能,于是在网上找了一些资料,根据这些资料终于实现了这个功能。

因为RichTextBox控件在运行过程中允许往里粘贴图片等内容,于是网上的解决方案大多是借助这一特点而实现的。其实现的基本思想如下:

(1)将要添加的图片保存到剪贴板中,这主要借助Clipboard类的SetDataObject方法

(2)将剪贴板中的内容粘贴到RichTextBoxBox控件中,这主要使用RichTextBox控件的Paste方法。

设计步骤:

(1)定义打开文件通用对话框的实例:

OpenFileDialog openJpgDialog = new OpenFileDialog();

(2)指定打开文件通用对话框的相关属性:

openJpgDialog.Filter = "JPG图片(*.jpg,*.jpeg)|*.jpg|BMP图片(*.bmp)|*.bmp|GIF图片(*.gif)|*.gif|PNG图片|*.png";    //设置文件名的筛选字符串
openJpgDialog.FilterIndex = 0;   //设置对话框默认的文件类型索引
openJpgDialog.RestoreDirectory = true;   //关闭对话框后,回到原有文件路径
openJpgDialog.Multiselect = false;      //不允许选择多个图片

(3)打开通用对话框,并将选择的图片插入到当前RichTextBox中:

if (openJpgDialog.ShowDialog() == DialogResult.OK)
{
       filePath = openJpgDialog.FileName;
       Image img = Image.FromFile(filePath);
       Clipboard.SetDataObject(img);
       richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));
}

完整的源代码如下:

 string filePath;
 OpenFileDialog openJpgDialog = new OpenFileDialog();
 openJpgDialog.Filter = "JPG图片(*.jpg,*.jpeg)|*.jpg|BMP图片(*.bmp)|*.bmp|GIF图片(*.gif)|*.gif|PNG图片|*.png";
 openJpgDialog.FilterIndex = 0;
 openJpgDialog.RestoreDirectory = true;
 openJpgDialog.Multiselect = false;
 if (openJpgDialog.ShowDialog() == DialogResult.OK)
 {
      filePath = openJpgDialog.FileName;
      Image img = Image.FromFile(filePath);
      Clipboard.SetDataObject(img);
      richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));
 }

以上代码是写在菜单点击事件处理程序中。运行结果如下:

 我的记事本插入图片功能
我的记事本:插入图片菜单

我的记事本插入图片效果
我的记事本插入图片效果

本文为本站原创,如需转载,请注明出处:翔宇亭IT乐园(http://www.biye5u.com/

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 2 条,得分 200 分,平均 100 分) 查看完整评论
[回复] 2哈哈   打分:100分  发表时间:2023-07-18
· 怎么在 richtexebox中插入表格
[回复] 1看看,   打分:100分  发表时间:2019-07-19
· 不错
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.