画像とテキストを1つのオブジェクトとしてクリップボードにコピーするにはどうすればよいですか?
-
08-07-2019 - |
質問
ファイルの画像とファイルのテキストの両方をクリップボードにコピーしようとしています。次に、Word文書またはOutlook電子メールを開き、テキストと画像の両方を1つの標準の貼り付けコマンド(たとえば、CTRL-V)で貼り付けます。両方を別々に簡単に実行できますが、1つの操作で両方を実行しても機能しないようです。
これは、2つの操作を別々の操作として実行する方法です(もちろん、関連するコード行のみ、try / catchを削除するなど):
クリップボードに画像を追加:
...
Bitmap imageToAdd = new Bitmap(imageFilePath);
Clipboard.SetImage(imageToAdd);
...
クリップボードにテキストを追加:
...
StreamReader rdr = new StreamReader(textFilePath);
string text = rdr.ReadToEnd();
Clipboard.SetText(text);
...
C#および.net 2.0フレームワークを使用しており、Windows XP(および近い将来Vistaをターゲットにします)。
TIA
解決
オブジェクトのみが渡されることに気付きました。
その場合、ユーザーがコマンドを押して貼り付けると、コードは2つの関数、または1つの関数を再帰的に実行し、必要なデータを取得して貼り付けることができます。
だから、ループまたは再帰を見てください。
他のヒント
テキストとグラフィックを組み合わせることができるRTFを使用できます。クリップボードにCF_BITMAPとCF_TEXTを同時に配置できることに注意してください。しかし、それは役に立ちません。メモ帳に貼り付けるとテキストが表示され、ペイントに貼り付けるとビットマップが表示され、他のほとんどのアプリではどちらか一方が選択されますが、両方は選択されません。ですから、単に学術的なものです。スタートレックでの輸送機の誤動作のように、きちんとした種類のものはきちんとしていた。でも面倒です。
Objectパラメーターを必要とするSetDataObjectを使用したり、オブジェクト配列を使用したりできますか?
オブジェクト配列には、必要なデータを保持できます。
こちらのリンクをご覧ください: