我一直在使用一个简单的Web表单应用程序来缩短asp.net中的url。我成功完成了我的功能,当我更改网址时,它会自动复制到剪贴板。
我已将文本值存储在变量中,如
shortUrl.Text = shortURL;
在此之后我调用剪贴板功能
clip_board(shortURL);
我的功能是
public void clip_board(string shortUrl)
{
MessageBox.Show(shortUrl);
Clipboard.SetText(shortUrl);
}
此处的消息框显示缩短的网址,但Clipboard.SetText()
显示错误为
在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保您的Main函数上标有STAThreadAttribute。
如何克服此错误?
答案 0 :(得分:3)
你说它是一个ASP.NET应用程序:在这种情况下,你的.NET代码将在服务器上运行,因此你无法访问客户端的剪贴板 - 也不能调用WinForms方法,例如MessageBox.Show
。
回应评论:
但是它会显示带有确切值的消息框...
您是否正在使用Visual Studio和Cassini Web服务器进行调试?在这种情况下,您可能会看到MessageBox.Show
的输出,因为它在您当前会话的上下文中运行。但是,当您部署到IIS时,这将不起作用。