Question

Je souhaite écrire le format HTML, mais je ne peux même pas obtenir un exemple MSDN simple pour qu'il fonctionne.

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

Cette application console, un tripleur rond dans le presse-papiers, fonctionne-t-elle pour n'importe qui?

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();
    }
}
Était-ce utile?

La solution

Lorsque vous copiez des données à partir d'un navigateur dans le presse-papiers, les mêmes données sont insérées dans le presse-papiers dans différents formats, notamment en texte et en HTML. Vous pouvez donc lire les données au format texte ou HTML. Cependant, lorsque vous appelez SetText ici, vous passez UNIQUEMENT au format HTML. Par conséquent, lorsque vous utilisez le GetText standard, il n'y a pas de version texte dans le presse-papiers et vous obtenez la valeur null.

Vous pouvez insérer plusieurs formats dans le presse-papiers à la fois (c'est-à-dire, texte et HTML) en utilisant IDataObject, mais vous devez effectuer la traduction entre les formats vous-même avant de placer les données dans le presse-papiers. Voici un exemple d'utilisation de IDataObject ici .

Autres conseils

Je peux reproduire que cela ne fonctionne pas ... le var text2 = Clipboard.GetText (); renvoie à "<> code> à chaque fois ...

(éditer) Une recherche rapide génère cette , qui semble sur le sujet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top