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]
这里要涉及的集合是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]
相关文章推荐
- 【Unity3d】在Unity3d中,使用C#中访问系统剪贴板
- C# 积木模块 ABC(三)
- C# 积木模块 ABC(二)在C#中部署应用程序
- C#积木模块ABC:13.如何在C#中发送邮件?
- C# 积木模块 ABC(一)
- C# 积木模块 ABC(一)
- C#积木模块ABC(目录)
- C# 积木模块 ABC(一)(转自新一代技术网)
- C# 积木模块 ABC(四)
- python使用platform模块获取系统环境并去除换行符
- python3之模块psutil系统性能信息使用
- C#使用SQLite出错:无法加载 DLL“SQLite.Interop.dll”,找不到指定的模块
- SpringMVC(16):使用springmvc+spring+jdbc 优化订单管理系统的示例(多条件查询供应商列表功能实现)
- ubuntu16系统中pycharm下使用git将代码提交到github仓库
- C# 系统应用之使用Pancel控件同一窗体切换页面
- C#.NET控制模块菜单的访问权限(走火入魔通用权限管理系统组件在信息管理系统中的用处)
- C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)
- c# 使用API读取系统信息并操作
- C#中使用ClickOnce技术实现系统的部署和升级
- 使用C#获取WinCE系统中的内存状态及系统状态