Plearn中文网
领取MOLI红包
栏目分类
热点资讯
QMALL中文网

你的位置:Plearn中文网 > QMALL中文网 > C#使用Clipboard类实现剪贴板功能

C#使用Clipboard类实现剪贴板功能

发布日期:2025-01-03 19:22    点击次数:198

剪贴板是Windows操作系统中最常用的功能之一,它用来从一个应用程序向另一个应用程序传递数据,可以是文本,图象,甚至是程序对象。 不过剪贴板也有限制,它在某个特定的时间只能指向一块内容,每一个随后复制的内容都会取代先前的内容。 为了在C#中操作剪贴板(包括内容的读取和写入)需要使用到System.Windows.Forms.Clipboard类 一、向剪贴板中存放东西。相当于Ctrl+C 主要用到Clipboard类的SetDataObject(Object obj,bool copy )方法,此方法是将目标对象放入剪贴板中。 obj就是目标对象, 参数copy表示是否在程序结束时仍然保存对象于剪贴板。如果设置为false,或者不设置,将在程序运行结束后不保留剪切板内容。 1、存放普通数据 通过以上代码便完成了复制操作。你可以打开文本文档,按下Ctrl+V 看一下效果。 2、往剪切板里存取自定义数据 C#的对象的数据结构并不能为剪切板所理解,所以你要把你自定义的数据放到剪切板去的话要把它序列化,在实际操作中,是要你提供一个“可序列化”的对象。 注意: 对象必须是可序列化的(Serializable注解),才能将其放在剪贴板上。 如果将非序列化对象传递到剪贴板方法,则该方法将失败,且不会引发异常。Clipboard 类只能在设置为单线程单元(STA)模式的线程中使用。 若要使用此类,请确保 Main 方法使用 STAThreadAttribute 属性进行标记。如果数据比较复杂,可以考虑把数据自行序列化到一个Stream对象去,再把Stream对象写入剪切板,获取的时候对Stream对象自行反序列化,还原数据。 下面是个简单的例子: 最后要注意的一点是由于这里的数据类型是“mydata”,你也可以指定别的名字,这种类型数据只有你自己的程序能读懂,也就是说,你是不能打开记事本或者Photoshop,直接把你这个User对象贴上去的。 二、从剪贴板读取东西。相当于Ctrl+V 主要用到的方法为:GetDataObject()用来检索剪贴板中的数据,它返回的是任何格式的数据,返回IDataObject接口,用来接收任何数据。 IDataObject接口实例的 GetDataPresent (Type Format)方法返回bool值,获取指定类型是否可用。另外就是DataFormats类,该类主要是用来标识格式用的。从剪切板上获得数据不影响剪贴板的内容,GetData的返回值是存储在剪贴板上的副本。 1、粘贴文本的方法: 2、粘贴图片: 或者 3、控件自带的paste方法 另外我们可以利用某些控件自带的paste方法进行粘贴操作,我们这里以richtextbox为例。[注:在使用控件的paste方法之前必须确保控件的readonly属性为false,否则无法对控件进行此操作!] 现在我们就用paste方法来实现向richtextbox中加入图片。 到此这篇关于C#使用Clipboard类实现剪贴板功能的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 您可能感兴趣的文章:易语言调用SetClipboardViewer的api实现剪贴版的内容监控js复制文本到粘贴板(Clipboard.writeText())使用clipboard.js库实现复制剪切功能clipboard.js使用总结JavaScript之clipboard用法详解解析Clipboard API剪贴板操作实例

友情链接:

Powered by Plearn中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024