如何在C#中将数据复制到剪贴板

如何在C#中将字符串(例如“ hello”)复制到系统剪贴板中,因此下次按下时CTRL+V我会得到“ hello”?

回答:

有两个类,它们生活在不同的程序集和不同的命名空间中。

  • WinForms:使用以下命名空间声明,确保Main已标记[STAThread]属性:

    using System.Windows.Forms;

  • WPF:使用以下名称空间声明

    using System.Windows;

  • 控制台:添加对的引用System.Windows.Forms,使用以下名称空间声明,确保Main已标记了[STAThread]属性。另一个答案的分步指南

    using System.Windows.Forms;

要复制确切的字符串(在这种情况下为文字):

Clipboard.SetText("Hello, clipboard");

要复制文本框的内容,请使用TextBox.Copy()或先获取文本,然后设置剪贴板值:

Clipboard.SetText(txtClipboard.Text);

请参阅此处的示例。或者… MSDN官方文档或WPF此处。


备注:

  • 剪贴板是桌面用户界面的概念,尝试在服务器端代码(如ASP.Net)中进行设置,只会在服务器上设置值,而不会影响用户在浏览器中看到的内容。尽管链接的答案使您无法用SetApartmentState它来运行剪贴板访问代码服务器端。

  • 如果此问题代码中的以下信息之后仍然出现异常,请参见将字符串复制到剪贴板中的“当前线程必须设置为单线程单元(STA)”错误

  • 该问题/答案涵盖常规.NET,有关.NET Core,请参见-.Net Core-复制到剪贴板吗?

以上是 如何在C#中将数据复制到剪贴板 的全部内容, 来源链接: utcz.com/qa/409120.html

回到顶部