2

如果剪贴板中的当前(最近)项目是一个字符串,我想从剪贴板中获取字符串,并将每个单词放入一个数组中(只是一个简单的循环,它消除了空格和换行符,只从字符串中获取单词)。然后我只想将数组中的每个项目(假设每个项目都用换行符分隔以进行测试)打印到终端。

这是超级简单,简单等。我的麻烦是我似乎无法找到/使​​用 C# 内置的剪贴板类!这是我用作程序集参考的内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Object;
using System.Windows.Clipboard;

注意 System.Windows.Clipboard; 得到红色下划线,因为它没有排队。为什么会这样? http://msdn.microsoft.com/en-us/library/system.windows.clipboard.aspx显示剪贴板类信息。

这可能是我的一个错误,但是否有可能我没有正确设置我的路径或其他什么?我刚刚安装了 Visual Studio 2012 For Desktop SP3(尽管我已经使用 VS2012 for Web 很长一段时间了,它工作正常)。

4

6 回答 6

2

System.Windows.Clipboard是一个类而不是命名空间,将一个类放入 using 指令是没有意义的。

编译器错误消息应该告诉你同样的。

于 2013-09-07T19:16:12.363 回答
2

首先,您必须在应用程序中添加对 System.Windows.Forms 的引用。转到 Project -> Add reference,从刚刚打开的窗口中的 .NET 选项卡中选择 System.Windows.Forms。您必须通过将 STAThread 属性应用于 Main() 函数来避免 ThreadStateException。然后您可以毫无问题地使用剪贴板功能。

using System;

使用 System.Windows.Forms;

类程序{

[STAThread]
static void Main(string[] args) {

     Clipboard.SetText("this is in clipboard now");
}

}

于 2013-09-07T19:47:11.830 回答
1

我希望这能帮到您

http://blog.another-d-mention.ro/programming/c/use-clipboard-copypaste-in-c-console-application/

它展示了如何在 C# 控制台应用程序中使用剪贴板功能

于 2013-09-07T19:26:33.593 回答
0

您不需要这一行: using System.Windows.Clipboard;using 语句用于命名空间,而 Clipboard 是一个类。该类由程序集 PresentationCore.dll 提供,并且由于您有 WPF 项目,因此您的项目已经引用了它。

于 2013-09-07T19:16:05.363 回答
0

您应该只引用System.Windows命名空间中的类Clipboard。您可以从那里设置和获取数据

System.Windows.Clipboard.SetData();
于 2013-09-07T19:17:01.257 回答
0

你需要一个命名空间声明:

using System.Windows.Forms;

或者对于 WPF:

using System.Windows;

复制精确的字符串

var dataObject = System.Windows.Clipboard.GetDataObject();
string text= dataObject.GetData("UnicodeText", true).ToString();
于 2013-09-07T20:12:28.830 回答