您的位置:首页 > 编程语言 > C#

C#积木模块ABC:16.使用系统剪贴板?

2005-06-30 10:07 344 查看
[align=left]16.使用系统剪贴板

这里要涉及的集合是System.Winforms.dll,名称空间是System.Winforms。

系统剪贴板是一个提供剪切和粘贴功能的缓冲空间。在C#中,ClipBoard类提供了将数据放在系统剪贴板以及从系统剪贴板恢复数据的方法。如果你曾经使用过C++中的ClipBoard,你应该记得IDataObject,它提供了剪贴板的数据格式。在.NET中,可以使用DataFormat类,它执行IdataObject,为数据传输提供了一种格式独立的结构。有关这方面的细节请看DataFormat类的参考资料。

Clipboard类只有3个成员,它们是剪贴板构造器、GetDataObject和SetDataObject。

剪贴板构造器

Clipboad类直接从Object类中派生出来。我们可以在应用程序中直接调用Clipboard类,或者使用剪贴板构造器来创建一个剪贴板实例:

Clipboard = new Clipboard();

甚至可以直接在应用程序中调用Clipboard:

IDataObject iData = System.WinForms.Clipboard.GetDataObject();

SetDataObject方法

我们可以调用SetDataObject方法实现在剪贴板上复制或剪切数据。SetDataObject方法有两个定义:

public static void SetDataObject(Object);

这种方法使用了一个Object类型参数,它可以是任何数据,比如说:

string str = "Mahesh writing data to the Clipboard";

SetDataObject(str);

使用这个方法,就可以把任何类型的数据放在剪贴板上。

另外一种方法接受两个参数:

public static void SetDataObject(Object data, bool copy);

copy这个参数指明应用程序退出后,数据是否应该保留在剪贴板上。

string str = "Mahesh writing data to the Clipboard using Copy bool";

SetDataObject(str, true);

GetDataObject方法

GetDataObject方法负责从剪贴板中恢复当前数据,它将返回IdataObject:

public static IDataObject GetDataObject();

比如说:

IDataObject dtObj = Clipboard.GetDataObject();

现在就可以调用IDataObject的GetFormats来找出剪贴板上的数据格式了,比如说:

private void CutCopyData()

{

Clipboard.SetDataObject(textBox1.SelectedText);

}

private void PasteData()

{

IDataObject iData = Clipboard.GetDataObject();

//Determine whether the data is in a format you can use.

if(iData.GetDataPresent(DataFormats.Text))

{

string str = (String)iData.GetData(DataFormats.Text);

}

}
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: