本文主要介绍.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);
    }              
}