DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

クリップボードに画像をコピーする

Clipboard.SetDataObjectメソッドを使って簡単に画像をクリップボードへコピーできます。

下の例では、画像ファイルを読み込み、そのデータをクリップボードにコピーしています。

[VB.NET]
'画像を作成する
Dim bmp As New Bitmap("C:\test.bmp")

'画像データをクリップボードにコピーする
Clipboard.SetDataObject(bmp, True)

'後片付け
bmp.Dispose()
[C#]
//画像を作成する
Bitmap bmp = new Bitmap("C:\\test.bmp");

//画像データをクリップボードにコピーする
Clipboard.SetDataObject(bmp, true);

//後片付け
bmp.Dispose();

上記の例では、SetDataObjectメソッドの2番目のパラメータにtrueを指定しましたので、アプリケーションが終了してもデータはクリップボードから削除されずに残ります。次の例のように、2番目のパラメータを指定せずに(あるいはfalseを指定して)、アプリケーションが終了したらデータがクリップボードから削除されるようにすることもできます。しかしこの場合は、コピーした画像データがDisposeメソッドで破棄されると、データを正しく取り出せなくなります。

[VB.NET]
'画像データをクリップボードにコピーする
Clipboard.SetDataObject(PictureBox1.Image)
[C#]
//画像データをクリップボードにコピーする
Clipboard.SetDataObject(PictureBox1.Image);

注意:上記の方法でピクチャボックスに表示された画像がクリップボードにコピーできないという方は、こちらをご覧ください。

.NET Framework 2.0以降

.NET Framework 2.0から追加されたClipboard.SetImageメソッドを使用することもできます。ただしこの場合は、アプリケーションが終了してもクリップボードからデータは削除されません。

[VB.NET]
'画像を作成する
Dim bmp As New Bitmap("C:\test.bmp")

'画像データをクリップボードにコピーする
Clipboard.SetImage(bmp)

'後片付け
bmp.Dispose()
[C#]
//画像を作成する
Bitmap bmp = new Bitmap("C:\\test.bmp");

//画像データをクリップボードにコピーする
Clipboard.SetImage(bmp);

//後片付け
bmp.Dispose();

VB.NETでは、My.Computer.Clipboard.SetImageメソッドを使っても同じことができます。

  • 履歴:
  • 2007/2/18 .NET Framework 2.0に関する記述を追加。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。