目次

クリップボードにビットマップデータをコピーするコードと実行結果 - クリップボードへの画像のコピー

目次

クリップボードへ画像データ(ビットマップデータ)をコピーするコードを紹介します。

概要

クリップボードに文字列をコピーするには、Clipboard.SetData() メソッドを利用します。

書式

Clipboard.SetData(DataFormats.Bitmap, [クリップボードにコピーするデータ]);

テキストをクリップボードにコピーする場合は、SetDataの第一引数に DataFormats.Bitmap を与えます。

実装例

UI

以下のUIを作成します。ButtonとPaintBoxを配置します。
クリップボードにビットマップデータをコピーするコードと実行結果 - クリップボードへの画像のコピー:画像1

コード

以下のコードを記述します。実質button2のClickイベントを実装します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SetClipBoard
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      Bitmap bmp = new Bitmap(pictureBox1.Image);
      Clipboard.SetData(DataFormats.Bitmap, bmp);
    }
  }
}

解説

private void button2_Click(object sender, EventArgs e)
{
  Bitmap bmp = new Bitmap(pictureBox1.Image);
  Clipboard.SetData(DataFormats.Bitmap, bmp);
}

Bitmapクラスのインスタンスを作成します。Bitmapクラスのコンストラクタの引数にPictureBoxのImageプロパティを与えることでPictureBoxに設定されている画像からBitmapクラスのオブジェクトを作成できます。
ClipboardクラスのSetDataメソッドを呼び出し画像をクリップボードにコピーします。今回クリップボードに設定するデータは画像のため、第一引数のフォーマット形式はDataFormats.Bitmapとします。第二引数の設定するデータはBitmapクラスのオブジェクトを与えます。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
クリップボードにビットマップデータをコピーするコードと実行結果 - クリップボードへの画像のコピー:画像2

button2をクリックします。pictureBox1の画像がクリップボードにコピーされます。"ペイント"を起動し、[貼り付け]メニューを選択するとpictureBox1に表示されていた画像がペイントのキャンバスに貼り付けられます。
クリップボードにビットマップデータをコピーするコードと実行結果 - クリップボードへの画像のコピー:画像3

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2012-06-15
Copyright © 1995–2025 iPentec all rights reserverd.