[.NET开发] C#实现剪切板功能

C#剪切板

Clipboard类

我们现在先来看一下官方文档的介绍

位于:System.Windows.Forms 命名空间下

Provides methods to place data on and retrieve data from the system Clipboard. This class cannot be inherited.

提供一些方法来存放数据和取回数据从系统的剪切板,这个类不能被实例化。

从官方的描述我们可以看出Clipboard是一个用来存放一些临时数据来用的...这句话是个废话,因为我们经常 复制站粘贴了。

Method

ContainsImage() 判断剪切板中是否包含图片数据

Note:

我们从系统中通过 Control+C 复制出来的图像文件实际上复制的不是图像文件本身而是图像文件的全路径。

private void btnContainsImage_Click(object sender, EventArgs e)

{

//将图片放置到剪切板中

Image img = Image.FromFile("file.png");

Clipboard.SetImage(img);

//判断剪切板中是否包含图片

bool flag = Clipboard.ContainsImage();

Console.WriteLine(flag);

}

复制代码

ContainsText() 判断剪切板中是否包含文本数据

private void btnContains_Click(object sender, EventArgs e)

{

//判断剪切板中是否包含文本数据

bool flag = Clipboard.ContainsText();

Console.WriteLine(flag);

}

复制代码

GetFileDropList() 获取剪切板中文件名的集合

private void btnGetPath_Click(object sender, EventArgs e)

{

//因为剪切板是可以复制多个文件的所有要遍历获取

StringCollection sc = Clipboard.GetFileDropList();

foreach (var item in sc)

{

Console.WriteLine(item.ToString());

}

}

/*输出结果:

C:\Users\IT\Desktop\drive.png

C:\Users\IT\Desktop\folder.png

C:\Users\IT\Desktop\file.png

*/

复制代码

SetDataObject() 向剪切板中放置数据

private void btnSetData_Click(object sender, EventArgs e)

{

string data = "天王盖地虎!";

Clipboard.SetDataObject(data);

string text = Clipboard.GetText();

Console.WriteLine(text);

}

复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

您可能感兴趣的文章:

c#剪切板操作的简单实例

C#线程间不能调用剪切板的解决方法

C#操作Clipboard读取剪切板中数据实例详解

C#编程实现查看剪切板内容的方法

(编辑:雷林鹏 来源:网络)

原文地址:https://www.cnblogs.com/pengpeng1208/p/9253353.html

时间: 2024-11-03 12:28:33

[.NET开发] C#实现剪切板功能的相关文章

window下vnc连接ubuntu及双向剪切板功能

window下实现vnc连接远程ubuntu :http://www.linuxidc.com/Linux/2016-06/132442.htm 关于连接:上面文章可能会有个问题,锁屏状态下会无法连接:所以额外加两步: 1 开启自动登陆 2 锁屏关闭 双向剪切板:https://my.oschina.net/seava/blog/226966 关于易用性行:sudo vim /etc/rc.local 然后写入 vncconfig -nowin &   如此重启剪切板功能会一直支持(中文乱码解决

android实现文本复制到剪切板功能(ClipboardManager)

Android也有剪切板(ClipboardManager),可以复制一些有用的文本到剪贴板,以便用户可以粘贴的地方使用,下面是使用方法 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.content.ClipboardManager 复制代码代码如下: /** * 实现文本复制功能 * add by wangqianzhou * @param content */  public static void cop

ASP.NET MVC实现剪切板功能

前言 关于复制粘贴的功能,好像不用劳师动众的写后端代码,JS就可以,但正如大家所知道的,兼容性问题,当然这么通用的功能怎么可能没有一个通用的方案呢,于是便找到了一款jquery插件 jquery.clip, perfect!但本篇并不是写如何使用jquery.clip,而是通过.net 的Clipboard类来实现. 代码实现 一.创建WebAPI,代码如下 using System.Windows.Forms; using System.Threading; namespace JYZS.Ap

unity调用系统剪切板功能

package com.game.utils; import android.app.Activity; import android.content.ClipData; import android.content.ClipDescription; import android.content.ClipboardManager; import android.content.Context; import android.os.Handler; import android.os.Looper

Flash10下复制到剪切板的一种新方法

web开发中常常要实现“复制到剪切板”功能.这个功能很实用,但是由于安全问题,浏览器的限制越来越严,实现的方法也越来越有限了.Firefox默认下不能直接通过Javascript操作剪切板,必须开启相关的设置才行.想只通过Javascript技术实现跨浏览器的剪切板是行不通的.现在常用的方法是利用JavaScript+Flash实现,普遍流传的办法是_clipboard.swf,这是国外最早实现的(著名的Clipboard Copy解决方案: http://www.jeffothy.com/we

vi中系统剪切板的设置

在vi中,如果编译时没有clipboard属性,将vi中的内容拷贝到系统剪切板有些麻烦.可以用如下的方法,查看vi 是否支持系统剪切板的功能: [email protected]:~$ vi --version | grep clipboard -clipboard +iconv +path_extra -toolbar +eval +mouse_dec +startuptime -xterm_clipboard 如果如上所示,不支持系统剪切板功能,可以如下在.vimrc中的设置,解决问题: "

C#操作剪切板(Clipboard)

剪切板是Windows系统提供的功能,从我最早接触到的Windows 3.2版本开始,就一直带着了.以前使用C++的时候,是直接使用Windows API对其进行操作的,到了.NET下,在WinForm中也有一个对剪切板的封装类,即System.Windows.Forms.Clipboard,这个类其实是通过COM组件间接地使用剪切板的,我个人觉得COM是一个设计非常糟糕的东西,难懂坑多还不可移植,但微软现存的大量代码又是基于COM的,所以又无法彻底舍弃,关于不可移植这个并不难理解,前面说了,剪

chrome浏览器下JavaScript实现clipboard时无法访问剪切板解决方案

在用JavaScript实现某个简单的复制到剪切板功能的时候,会考虑一下浏览器兼容性,主要是重点在IE和FireFox,把这个两个浏览器搞定后,基本上其他浏览器也不用太操心了,Chrome也一样,没出什么问题.但是Chrome用的好好的,突然过了一个月,就无法实现复制到剪切板了.一时不知道什么原因.网上查了一下,有这样一原因:安全问题,浏览器默认禁止访问剪贴板. 从代码层面,想了各种方法,去解决兼容性,都无济于事,就是解决不了Chrome的兼容性. 贴一下JavaScript一款通用的复制粘贴方

C++和C#实现剪切板数据交互

c#端由于system.windows.form自带的剪切板功能太少,所以写了一个Helper类把接口转了出来.这样就可以用不同的uint的id了. 并且自带的剪切板必须执行在[STAThread]模式下,很麻烦 而c++端拷贝字符串由于编码问题,需要使用宽字符.否则会乱码 c# ClipboardHelper using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Inter