Question

J'essaie de copier une image d'un fichier et le texte d'un fichier dans le presse-papiers. Mon intention est ensuite d'ouvrir un document Word ou un courrier électronique Outlook et de coller le texte et l'image dans une commande de collage standard (CTRL-V par exemple). Je peux faire les deux séparément assez facilement, mais les faire en une seule opération ne semble pas fonctionner.

C’est ainsi que les deux fonctionnent comme des opérations séparées (uniquement les lignes de code pertinentes, avec try / catch stripped out, etc.):

Ajouter une image au Presse-papiers:

...

Bitmap imageToAdd = new Bitmap(imageFilePath);
Clipboard.SetImage(imageToAdd);

...

Ajouter du texte au Presse-papiers:

...

StreamReader rdr = new StreamReader(textFilePath);
string text = rdr.ReadToEnd();

Clipboard.SetText(text);

...

J'utilise les frameworks c # et .net 2.0 et cible Windows XP (et probablement Vista dans un proche avenir).

TIA

Était-ce utile?

La solution

J'ai remarqué que seul un objet peut être transmis.

Dans ce cas, lorsque l'utilisateur appuie sur la commande à coller, votre code peut exécuter deux fonctions, ou une fonction, de manière récursive, et obtenir à chaque fois les données souhaitées et les coller.

Regardez donc les boucles ou les récursions.

Autres conseils

Vous pouvez utiliser le format RTF, qui peut combiner du texte et des graphiques. Notez que vous POUVEZ avoir CF_BITMAP et CF_TEXT dans le presse-papier en même temps. Mais ce n'est pas utile. Vous obtiendrez le texte lorsque vous collerez dans le bloc-notes, vous obtiendrez le bitmap lorsque vous collerez dans Paint, et la plupart des autres applications choisiraient l'une ou l'autre, mais jamais les deux. Donc, c'est simplement académique. En quelque sorte soigné, à la manière dont les dysfonctionnements du transporteur sur Star Trek étaient soignés. Mais aussi désordonné.

Peut-être que vous pourriez utiliser SetDataObject qui nécessite un paramètre Object, vous pourriez utiliser un tableau d'objets?

Le tableau d'objets peut contenir vos données requises.

Voir ce lien:

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

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