开发手册 欢迎您!
软件开发者资料库

.NET(C#) 操作windows剪粘板(粘贴板)读取设置文本和文件数据

本文主要介绍.NET(C#)中,将文件(图片,文本文件)、自定义数据对象、文本数据通过Clipboard设置到剪贴板(粘贴板)或从中读取的方法代码。

参考文档https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-retrieve-data-from-the-cl...

Clipboard类命名空间是System.Windows.Forms,在winform程序中可以直接使用

1、设置写入剪贴板(粘贴板)代码

StringCollection paths = new StringCollection();paths.Add("f:\\temp\\1.txt");paths.Add("f:\\temp\\1.txt");//文件名(path)集合添加到剪贴板中Clipboard.SetFileDropList(paths);//将图片文件添加到剪贴板中Clipboard.SetImage(Image.FromFile(@"E:\1.jpg"));//将html格式文本添加到剪贴板中Clipboard.SetText(File.ReadAllText(@"E:\1.html"));//将自定义格式数据添加到剪贴板中Clipboard.SetData("CustomerFormat", new Customer("Customer Name"));

2、读取剪贴板(粘贴板)代码

 string fileName = string.Empty;//剪粘板中有图片文件if (Clipboard.ContainsImage()){    fileName = @"F:\1.png";    Clipboard.GetImage().Save(fileName, ImageFormat.Png);}//剪粘板中有指定格式的数据if (Clipboard.ContainsData(DataFormats.Html)){    textBox1.Text = (String)Clipboard.GetData(DataFormats.Html);}//剪粘板中有自定义格式数据if (Clipboard.ContainsData("CustomerFormat")){    Customer obj = Clipboard.GetData("CustomerFormat") as Customer;}//剪粘板中有多个文件名if (Clipboard.ContainsFileDropList()){    System.Collections.Specialized.StringCollection returnList = null;    returnList = Clipboard.GetFileDropList();    foreach (var item in returnList)    {        //每个文件的路径        MessageBox.Show(item);    }              }