如何在 C# 中将字符串(例如“hello”)复制到系统剪贴板,以便下次按 CTRL+V 时我会得到“hello”?
最佳答案
有两个类位于不同的程序集和不同的命名空间中。
WinForms:使用以下命名空间声明,确保
Main
标记有[STAThread]
属性:using System.Windows.Forms;
WPF:使用以下命名空间声明
using System.Windows;
控制台:添加对
System.Windows.Forms
的引用,使用以下命名空间声明,确保Main
标记为[STAThread]
属性。另一个 answer 中的分步指南using System.Windows.Forms;
要复制精确的字符串(在本例中为文字):
Clipboard.SetText("Hello, clipboard");
要复制文本框的内容,请使用 TextBox.Copy()或者先获取文本然后设置剪贴板值:
Clipboard.SetText(txtClipboard.Text);
See here for an example . 或者... Official MSDN documentation或 Here for WPF .
备注:
剪贴板是桌面 UI 概念,尝试在服务器端代码(如 ASP.Net)中设置它只会在服务器上设置值,不会影响用户在浏览器中看到的内容。虽然链接的答案允许使用
SetApartmentState
运行剪贴板访问代码服务器端,但这不太可能是您想要实现的。如果按照此问题代码中的信息后仍然出现异常,请参阅 "Current thread must be set to single thread apartment (STA)" error in copy string to clipboard
此问题/答案涵盖常规 .NET,对于 .NET Core,请参阅 - .Net Core - copy to clipboard?
关于c# - C#中如何将数据复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3546016/