在我的应用程序中,我允许用户选择与磁盘上的文件对应的项目.当用户按下Ctrl + C时,我希望将文件发送到剪贴板,然后用户可以将文件粘贴到其他位置.
我希望以某种方式实现它,以便用户可以复制,但不能粘贴到我的应用程序中.然后,用户可以将文件粘贴到Explorer或其他将从剪贴板接受文件的应用程序的实例中.
我知道如何在剪贴板中设置信息,而不是如何设置它,以便Windows将其识别为某些文件的复制操作.
我怎么能做到这一点?
要捕获CTRL + C,您可以检查KeyPress事件上的按键.要复制文件,请使用类似下面的内容:
private void CopyFile(string[] ListFilePaths)
{
System.Collections.Specialized.StringCollection FileCollection = new System.Collections.Specialized.StringCollection();
foreach(string FileToCopy in ListFilePaths)
{
FileCollection.Add(FileToCopy);
}
Clipboard.SetFileDropList(FileCollection);
}
Run Code Online (Sandbox Code Playgroud)
只需使用Clipboard类:http:
//msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.aspx
使用SetFileDropList方法使Windows将其识别为复制操作:http:
//msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.setfiledroplist.aspx
如果应用程序中的数据不是基于实际文件,我建议您首先将它们生成为用户临时文件夹中的临时文件,然后将它们添加到文件列表中.
| 归档时间: |
|
| 查看次数: |
5979 次 |
| 最近记录: |