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();
byte[] bytes = new byte[] { (byte)(cut ? : ), , , };
memo.Write(bytes, , 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 = ; 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();
byte[] bytes = new byte[] { (byte)(cut ? : ), , , };
memo.Write(bytes, , 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;
}
}
Winform/WPF Clipboard之剪切复制粘贴的更多相关文章
- 第十二篇 -- QMainWindow与QAction(剪切-复制-粘贴)
效果图: 按照上一节的方法,将剪切-复制-粘贴图标放置到工具栏后,为其指定槽函数.这些功能无需自己编写代码来实现,QPlainTextEdit提供了实现这些编辑功能的槽函数,如cut().copy() ...
- C# WinForm:DataTable中数据复制粘贴操作的实现
1. 需要实现类似于Excel的功能,就是在任意位置选中鼠标起点和终点所连对角线所在的矩形,进行复制粘贴. 2. 要实现这个功能,首先需要获取鼠标起点和终点点击的位置. 3. 所以通过GridView ...
- vim基本命令之剪切复制粘贴替换
首先是剪切(删除): 剪切其实也就顺带删除了所选择的内容,所以既可以当剪切命令用,也可以当删除命令使用. 1 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了 ...
- 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件
[源码下载] 重新想象 Windows 8 Store Apps (40) - 剪切板: 复制/粘贴文本, html, 图片, 文件 作者:webabcd 介绍重新想象 Windows 8 Store ...
- Winform调用系统的剪切,复制,粘贴文件功能
// <summary> /// 复制或剪切文件至剪贴板(方法) /// </summary> /// <param name="files"> ...
- 实现JTextfield 的右键 复制、剪切、粘贴功能。
http://leagion.iteye.com/blog/572730 ——————————————————————————————————————————————————————————————— ...
- Winform 使用热键功能实现Ctrl+C和Ctrl+V复制粘贴功能
当我们使用winform控件的时候,会发现这些控件(比如Label)不支持Ctrl+c 复制和Ctrl+v 快捷键复制粘贴功能,如果我们需要实现这个功能改怎么做呢? 1. 首先我们创建一个winfor ...
- 前端 JavaScript 复制粘贴的奥义——Clipboard 对象概述
前言 作为一名资深搬砖工,你要问我用得最熟练的技能是什么,那我敢肯定且自豪的告诉你:是 Ctrl+C !是 Ctrl+V! 不信?你来看看我键盘上的 Ctrl.C 和 V 键,那油光发亮的包浆程度,不 ...
- 前端复制粘贴文字clipBoard.js的使用
1. vue 中的复制粘贴: <div class="mainTextItem" @click="copyTXTOne" id="copyOn ...
随机推荐
- jsp数据库开发
完全卸载mysql数据库图文教程 https://jingyan.baidu.com/article/f96699bbaa8fc1894f3c1b5a.html MySQl:123456 JDBC概述 ...
- python项目离线环境配置指南
参考文献: http://blog.csdn.net/candcplusplus/article/details/52156324 https://www.cnblogs.com/michael-xi ...
- 浅谈范德蒙德(Vandermonde)方阵的逆矩阵的求法以及快速傅里叶变换(FFT)中IDFT的原理
浅谈范德蒙德(Vandermonde)方阵的逆矩阵与拉格朗日(Lagrange)插值的关系以及快速傅里叶变换(FFT)中IDFT的原理 标签: 行列式 矩阵 线性代数 FFT 拉格朗日插值 只要稍微看 ...
- 【题解】 [SDOI2009] Elaxia的路线(最短路+拓扑排序)
懒得复制,戳我戳我 Solution: 题目大概意思就是找两条最短路后,找出最长公共部分 我们就只用以四个点为源点开始走\(SPFA\),然后我们就只用遍历每条边然后建立一个新的拓扑图,然后随便搞一下 ...
- 【题解】 [SCOI2010]传送带 (三分法)
题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...
- BZOJ 1412 [ZJOI2009]狼和羊的故事 | 网络流
显然是个最小割嘛! 一开始我是这么建图的: 源点向狼连INF 羊向汇点连INF 每两个相邻格子间连双向边,边权为1 然后T成狗 后来我是这么建图的: 源点向狼连INF 羊向汇点连INF 狼和空地向相邻 ...
- Winform Treeview 排序及图标处理
一.排序 1. 继承 IComparer 2. treeView1.TreeViewNodeSorter = this; 3. 实现IComparer public int Compare(ob ...
- 音视频处理之PS封装的介绍与使用20180928
1.PS封装介绍MPEG2-PS是一种多路复用数字音频,视频等的封装容器.PS是Program Stream(程序流或节目流)的简称.程序流将一个或多个分组但有共同的时间基准的基本数据流(PES)合并 ...
- zabbix server安装(二)
https://mp.weixin.qq.com/s/ogaqiX4vhtGLepuNf-1ItA zabbix依赖LNMP或LAMP,下面讲解LNMP安装到zabbix web页面的访问. 一.ng ...
- HTML5 文件API
filelist 表示文件对象的列表. <form name="upload"> <input type="file" name=" ...