• Winform/WPF Clipboard之剪切复制粘贴


     Winform

         // <summary>
            /// 复制或剪切文件至剪贴板(方法)
            /// </summary>
            /// <param name="files">需要添加到剪切板的文件路径数组</param>
            /// <param name="cut">是否剪切true为剪切,false为复制</param>
            public static void CopyToClipboard(string[] files, bool cut)
            {
                if (files == null) return;
                IDataObject data = new DataObject(DataFormats.FileDrop, files);
                MemoryStream memo = new MemoryStream(4);
                byte[] bytes = new byte[] { (byte)(cut ? 2 : 5), 0, 0, 0 };
                memo.Write(bytes, 0, bytes.Length);
                data.SetData("Preferred DropEffect", memo);
                Clipboard.SetDataObject(data);
            }
    
            /// <summary>
            /// 获取剪贴板中的文件列表(方法)
            /// </summary>
            /// <returns>System.Collections.List<string>返回剪切板中文件路径集合</returns>
            public static  List<string> GetClipboardList()
            {
                List<string> clipboardList=new List<string>();
                System.Collections.Specialized.StringCollection sc = Clipboard.GetFileDropList();
                for (int i = 0; i < sc.Count; i++)
                {
                    string listfileName = sc[i];
                    clipboardList.Add(listfileName);
                }
                return clipboardList;
            }

     wpf

    /// <summary>
        /// 复制粘贴帮助类
        /// </summary>
        public class ClipboardHelper
        {
    
            /// <summary>
            /// 复制到剪切板
            /// </summary>
            /// <param name="text">文字</param> 
            public static void CopyText(string text)
            {
                Clipboard.SetText(text);
            }
    
            /// <summary>
            /// 复制或剪切文件到剪切板
            /// </summary>
            /// <param name="filePath">文件路径数组</param>
            /// <remarks>清空剪切板</remarks>
            public static void SetFileDrop(string filePath)
            {
                if (filePath == null) return;
                SetFileDropList(new[] { filePath });
            }
            /// <summary>
            /// 复制或剪切文件到剪切板
            /// </summary>
            /// <param name="files">文件路径数组</param>
            /// <remarks>清空剪切板</remarks>
            public static void SetFileDropList(string[] files)
            {
                Clipboard.Clear();//清空剪切板 
                StringCollection strcoll = new StringCollection();
                foreach (var file in files)
                {  
                    strcoll.Add(file);
                }
                Clipboard.SetFileDropList(strcoll);
            }
    
            /// <summary>
            /// 复制或剪切文件到剪切板
            /// </summary>
            /// <param name="filePath">文件路径数组</param>
            /// <param name="cut">true:剪切;false:复制</param>
            public static void CopyFile(string filePath, bool cut = false)
            {
                if (filePath == null) return;
                CopyFileList(new[] { filePath }, cut);
            }
            /// <summary>
            /// 复制或剪切文件到剪切板
            /// </summary>
            /// <param name="files">文件路径数组</param>
            /// <param name="cut">true:剪切;false:复制</param>
            public static void CopyFileList(string[] files, bool cut = false)
            {
                if (files == null) return;
                IDataObject data = new DataObject(DataFormats.FileDrop, files);
                MemoryStream memo = new MemoryStream(4);
                byte[] bytes = new byte[] { (byte)(cut ? 2 : 5), 0, 0, 0 };
                memo.Write(bytes, 0, bytes.Length);
                data.SetData("PreferredDropEffect", memo);
                Clipboard.SetDataObject(data, false);
            }
    
            /// <summary>
            /// 获取剪贴板中的文件列表(方法)
            /// </summary>
            /// <returns>System.Collections.List<string>返回剪切板中文件路径集合</returns>
            public static List<string> GetClipboardList()
            {
                List<string> clipboardList = new List<string>();
                StringCollection sc = Clipboard.GetFileDropList();
                foreach (var listFileName in sc)
                {
                    clipboardList.Add(listFileName);
                }
                return clipboardList;
            }
        }
  • 相关阅读:
    .Net开发中IIS启动后,网站不能访问。0x80004005 无法执行程序。所执行的命令为 .....问题
    .Net开发中项目无法引用/项目引用失败/引用文件出现黄色警告图标,并生成失败的问题
    Mac系统安装Docker
    小程序开发----微信小程序实现下拉刷新功能
    小程序开发----微信小程序navigate跳转没反应
    小程序开发----小程序点击复制文本内容到剪贴板
    小程序开发----微信小程序直接写&nbsp;设置空格无效
    python字符串的反转
    python2项目迁移到python3
    robotframework废弃的关键词以及替代的关键词(关键词找不到,可能已经过期了)
  • 原文地址:https://www.cnblogs.com/xcsn/p/4678364.html
Copyright © 2020-2023  润新知