【问题标题】:Clipboard.SetText() shows errorsClipboard.SetText() 显示错误
【发布时间】:2013-03-07 20:21:24
【问题描述】:

我一直在使用一个简单的 web 表单应用程序来缩短 asp.net 中的 url。我已经成功完成了我的功能,当我更改网址时,它应该会自动复制到剪贴板。

我已将文本值存储在变量中,例如

   shortUrl.Text = shortURL; 

在这之后我调用剪贴板函数

 clip_board(shortURL);

我的功能是

 public void clip_board(string shortUrl)
    {
       MessageBox.Show(shortUrl);
       Clipboard.SetText(shortUrl);

    }

这里的消息框显示了缩短的 url,但 Clipboard.SetText() 显示错误为

在进行 OLE 调用之前,必须将当前线程设置为单线程单元 (STA) 模式。确保您的 Main 函数上标记了 STAThreadAttribute。

如何克服这个错误?

【问题讨论】:

    标签: c# asp.net web-applications webforms


    【解决方案1】:

    您说它是一个 ASP.NET 应用程序:在这种情况下,您的 .NET 代码将在服务器上运行,因此您无法访问客户端的剪贴板 - 也无法调用 WinForms 方法,例如 MessageBox.Show

    回应评论:

    但它会显示带有确切值的消息框...

    您是否正在使用 Visual Studio 和 Cassini Web 服务器进行调试?在这种情况下,您可能会看到 MessageBox.Show 的输出,因为它在当前会话的上下文中运行。但是,当您部署到 IIS 时,这将不起作用。

    【讨论】:

    • 但它会显示带有精确值的消息框,并且它不会在此处访问剪贴板功能
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2014-02-13
    • 2012-08-11
    • 2017-05-26
    • 2014-04-09
    • 2016-05-08
    • 2018-01-11
    • 1970-01-01
    相关资源
    最近更新 更多