剪贴板操作
using System.Windows.Forms
读取剪贴板文本:
xInput.Text = Clipboard.GetText();
设置剪贴板文本:
Clipboard.SetText(xOutput.Text);
如果不是文本数据,则需要使用SetDataObject和GetDataObject方法,如:
Clipboard.SetDataObject(object); //这种方法也可以用于文本
IDataObject iData = Clipboard.GetDataObject(); //这种方法也可以用于文本
有关要与类一起使用 Clipboard 的预定义格式的列表,请参阅该 DataFormats 类。
调用 SetDataObject 以将数据放在剪贴板上,替换其当前内容。 若要在剪贴板上放置数据的持久副本,请将
copy
参数设置为 true
。备注
若要以多种格式将数据放置在剪贴板上,请使用 DataObject 类或 IDataObject 实现。 以多种格式将数据放置在剪贴板上,以最大程度地提高目标应用程序(你可能不知道的格式要求)可以成功检索数据的可能性。
若要从剪贴板检索特定格式的数据,请首先调用相应的
Contains
Format 方法 ((如 ContainsText) 方法),以确定剪贴板是否包含该格式的数据,然后调用相应的 Get
Format 方法 (,例如 GetText) 在剪贴板包含数据时检索数据。 若要在这些操作中指定格式,请改为调用 ContainsData 和 GetData 方法。所有基于Windows的应用程序共享系统剪贴板,因此切换到另一个应用程序时,内容可能会更改。
对象必须可序列化,才能将其放在剪贴板上。 如果将不可序列化的对象传递给剪贴板方法,该方法将失败,而不会引发异常。 有关详细信息,请参阅 System.Runtime.Serialization 序列化。 如果目标应用程序需要非常具体的数据格式,则序列化过程中添加到数据中的标头可能会阻止应用程序识别数据。 若要保留数据格式,请将数据添加为Byte数组并将其MemoryStream传递给MemoryStreamSetData方法。
类 Clipboard 只能在设置为单线程单元 (STA) 模式的线程中使用。 若要使用此类,请确保使用属性标记STAThreadAttribute方法Main
。
在剪贴板中使用图元文件格式时,可能需要特殊注意事项。 由于类的当前实现DataObject存在限制,.NET Framework使用元文件格式的应用程序可能无法识别.NET Framework使用的图元文件格式。 在这种情况下,必须与 Win32 剪贴板应用程序编程接口互操作, (API) 。
所有方法