2012-07-23 64 views
1

我添加了System.Windows和Microsoft.LightSwitch.Threading;访问剪贴板。LightSwitch将字符串复制到剪贴板

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

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

 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); 
     } 
    } 

回答

3

尝试使用主调度员是这样的:

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

也许如果it's一个Web应用程序你必须经过权限问题。

+0

你是一个拯救生命的人! – Kaleet 2012-07-24 00:11:31

+0

不能在webapp中工作:( – 2016-01-22 14:38:07