2008-12-06 43 views
1

我想寫Html格式,但我甚至不能得到一個簡單的MSDN示例它的工作。不能往返html格式到剪貼板

http://msdn.microsoft.com/en-us/library/tbfb3z56.aspx

這是否控制檯應用程序,剪貼板輪卸料,工作的人?

 
using System; 
using System.Windows; //Need to add a PresentationCore or System.Windows.Forms reference 

class Program { 
    [STAThread] 
    static void Main(string[] args) { 
     Console.WriteLine("Copy a small amount of text from a browser, then press enter."); 
     Console.ReadLine(); 

     var text = Clipboard.GetText(); 
     Console.WriteLine(); 
     Console.WriteLine("--->The clipboard as Text:"); 
     Console.WriteLine(text); 

     Console.WriteLine(); 
     Console.WriteLine("--->Rewriting clipboard with the same CF_HTML data."); 
     //***Here is the problem code*** 
     var html = Clipboard.GetText(TextDataFormat.Html); 
     Clipboard.Clear(); 
     Clipboard.SetText(html, TextDataFormat.Html); 

     var text2 = Clipboard.GetText(); 
     Console.WriteLine(); 
     Console.WriteLine("--->The clipboard as Text:"); 
     Console.WriteLine(text2); 

     var isSameText = (text == text2); 
     Console.WriteLine(); 
     Console.WriteLine(isSameText ? "Success" : "Failure"); 

     Console.WriteLine(); 
     Console.WriteLine("Press enter to exit."); 
     Console.ReadLine(); 
    } 
} 

回答

2

將數據從瀏覽器複製到剪貼板時,它將多個格式的相同數據放到剪貼板上,包括文本和HTML。因此,您可以以文本或HTML格式讀取數據。但是,當您在此處調用SetText時,您僅以HTML格式傳遞,因此當您使用常規GetText時,剪貼板上沒有文本版本,並且返回null。

您可以使用IDataObject將多種格式一次放入剪貼板(即文本和HTML),但在將數據放入剪貼板之前,您必須自己在格式之間進行翻譯。有一個如何使用IDataObject here的例子。

0

我可以重現它不工作...的var text2 = Clipboard.GetText();回報每次"" ...

(編輯) 快速搜索產量this,這似乎在題目。

+0

感謝您對它進行測試。 我也試過你的參考代碼。我也無法做到這一點。 – jyoung 2008-12-06 23:38:34