在RichTextBox控件中添加图片和文字

 1 public void SetText(RichTextBox rtb)
 2 {
 3     rtb.Text = "在RichTextBox控件中添加图片和文字" + Environment.NewLine;
 4     rtb.BackColor = Color.White;
 5     rtb.ForeColor = Color.Blue;
 6     rtb.SelectionColor = Color.White;
 7     rtb.Font = new Font("黑体", 22);
 8 
 9     //获得要复制图片的完整路径
10     string picPath = Application.StartupPath + "\\accept.png";
11     //建立Image对象
12     Image myImage = Image.FromFile(picPath);
13     //建立一个IDataObject对象存储图片
14     IDataObject data = new DataObject();
15     //调用SetData方法储存图片
16     data.SetData(myImage);
17     //将图片复制到剪贴板上
18     Clipboard.SetDataObject(data, false);
19     rtb.SelectionStart = rtb.Text.Length;
20     //将剪贴板中的内容贴入RichTextBox中
21     rtb.Paste();
22     rtb.AppendText(Environment.NewLine + "测试结束!");
23 }

效果:

这是一个在RichTextBox中插入图片和文字的方法,使用时将RichTextBox对象传给该方法即可,方法中的文字是定死的,可以根据自己的需求修改文字内容和图片路径。调用剪贴板时可以直接将Image对象传给SetDataObject方法,放在剪贴板上的对象必须是可序列化的,这里调用IDataObject接口来实现剪贴板中的Clipboard和拖放操作。下面说下DataObject类的使用说明,截取自MSDN:
DataObject 实现 IDataObject 接口,该接口的方法为数据传输提供与格式无关的机制。

DataObject 通常用于 Clipboard 和拖放操作。DataObject 类提供 IDataObject 接口的建议实现。建议使用 DataObject 类,而不用自己实现 IDataObject

可将不同格式的多种数据存储在 DataObject 中。可通过与数据关联的格式从 DataObject 中检索这些数据。因为目标应用程序可能未知,所以通过将数据以多种格式放置在 DataObject 中,可使数据符合应用程序的正确格式的可能性增大。请参见 DataFormats 以获得预定义的格式。可通过创建 DataFormats.Format 类的实例来实现自己的格式。

若要在 DataObject 中存储数据,请将这些数据传递给构造函数或调用 SetData可以使用多种格式将数据添加到同一 DataObject如果想只以其本机格式检索添加的数据,请调用 SetData(String, Boolean, Object),将其 autoConvert 参数设置为 false

可从 DataObject 中以任何与 GetData 兼容的格式检索数据。例如,文本可被转换为 Unicode。若要按照存储数据的原格式来检索该数据,可调用 GetData,并将 autoConvert 参数设置为 false

若要确定数据存储的格式,可调用 GetFormats若要确定一种格式是否可用,可用所需的格式来调用 GetDataPresent

在 .NET Framework 2.0 中,DataObject 类可提供其他方法,使得处理常用格式的数据更加容易。若要将特定格式的数据添加到 DataObject 中,请使用相应的 Set格式 方法,如 SetText若要检索 DataObject 中特定格式的数据,请首先调用相应的 Contains 格式 方法(如 ContainsText),以确定 DataObject 是否包含该格式的数据,如果 DataObject 包含该格式的数据,再调用相应的 Get 格式 方法(如 GetText)进行检索。

posted @ 2013-10-08 10:13  尐sんΙ頭  阅读(2732)  评论(0编辑  收藏  举报