5

ファイルからの画像とファイルからのテキストの両方をクリップボードにコピーしようとしています。私の意図は、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 もターゲットにする可能性があります)。

ティア

4

4 に答える 4

5

テキストとグラフィックを組み合わせることができる RTF を使用できます。クリップボードに CF_BITMAP と CF_TEXT を同時に保持できることに注意してください。しかし、それは役に立ちません。メモ帳に貼り付けるとテキストが取得され、ペイントに貼り付けるとビットマップが取得され、他のほとんどのアプリはどちらか一方を選択しますが、両方を選択することはありません. だから、あくまでアカデミック。スタートレックのトランスポーターの誤動作がきちんとしていたのと同じように、ちょっときちんとしています。しかし、乱雑でもあります。

于 2010-12-01T23:59:24.257 に答える
1

Object パラメーターを必要とする SetDataObject を使用することも、オブジェクト配列を使用することもできますか?

オブジェクト配列は、必要なデータを保持できます。

このリンクを参照してください:

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

于 2008-11-12T21:25:18.643 に答える
1

オブジェクトのみを渡すことができることに気付きました。

その場合、ユーザーがコマンドを押して貼り付けたときに、コードで 2 つの関数または 1 つの関数を再帰的に実行し、そのたびに必要なデータを取得して貼り付けることができます。

したがって、ループまたは再帰を見てください。

于 2008-11-20T23:18:08.500 に答える