1

我添加了 System.Windows 和 Microsoft.LightSwitch.Threading;访问剪贴板。

当我运行这个程序时,我得到这个错误:无效的跨线程访问。

让剪贴板工作的任何想法?

        partial void btnCopyFaucets_Execute()
    {
        // Write your code here.
        try
        {
            string CopyText, nManu, nProductCode, nFaucet;
            Faucets cpyfaucet = this.FaucetsSearch.SelectedItem;

            nManu = Convert.ToString(cpyfaucet.Manufacturer);
            nProductCode = Convert.ToString(cpyfaucet.ProductCode);
            nFaucet = Convert.ToString(cpyfaucet.Faucet);

            CopyText = nManu + " " + nProductCode + " " + nFaucet;

            // THIS IS WHERE THE COMPILER IS NOT HAPPY.
            Clipboard.SetText(CopyText);
        }
        catch (Exception damnit)
        {
            MessageBox.Show(damnit.Message);
        }
    }
4

1 回答 1

3

尝试像这样使用 Main 调度程序:

Microsoft.LightSwitch.Threading.Dispatchers.Main.BeginInvoke(() =>
 Clipboard.SetText(CopyText);
});

也许如果它是一个网络应用程序,那么之后你会遇到权限问题。

于 2012-07-23T11:30:21.307 回答