Clipboard クラス

定義

システム クリップボードにデータを貼り付けるメソッド、またはシステム クリップボードのデータを取得するメソッドを提供します。 このクラスは継承できません。

public ref class Clipboard sealed
public ref class Clipboard abstract sealed
public sealed class Clipboard
public static class Clipboard
type Clipboard = class
Public NotInheritable Class Clipboard
Public Class Clipboard
継承
Clipboard

次のコード例では、 メソッドを使用 Clipboard してデータを配置し、システムクリップボードから取得します。 このコードは、button1、、textBox1button2textBox2 が作成され、フォームに配置されていることを前提としています。

メソッドは button1_Click を呼び出 SetDataObject して、テキスト ボックスから選択したテキストを取得し、システムクリップボードに配置します。

メソッドは button2_Click を呼び出 GetDataObject して、システムクリップボードからデータを取得します。 コードでは、 と DataFormats を使用IDataObjectして返されたデータを抽出し、 にtextBox2データを表示します。

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Takes the selected text from a text box and puts it on the clipboard.
      if ( !textBox1->SelectedText->Equals( "" ) )
      {
         Clipboard::SetDataObject( textBox1->SelectedText );
      }
      else
      {
         textBox2->Text = "No text selected in textBox1";
      }
   }

   void button2_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Declares an IDataObject to hold the data returned from the clipboard.
      // Retrieves the data from the clipboard.
      IDataObject^ iData = Clipboard::GetDataObject();
      
      // Determines whether the data is in a format you can use.
      if ( iData->GetDataPresent( DataFormats::Text ) )
      {
         // Yes it is, so display it in a text box.
         textBox2->Text = (String^)(iData->GetData( DataFormats::Text ));
      }
      else
      {
         // No it is not.
         textBox2->Text = "Could not retrieve data off the clipboard.";
      }
   }
private void button1_Click(object sender, System.EventArgs e) {
    // Takes the selected text from a text box and puts it on the clipboard.
    if(textBox1.SelectedText != "")
       Clipboard.SetDataObject(textBox1.SelectedText);
    else
       textBox2.Text = "No text selected in textBox1";
 }
 
 private void button2_Click(object sender, System.EventArgs e) {
    // Declares an IDataObject to hold the data returned from the clipboard.
    // Retrieves the data from the clipboard.
    IDataObject iData = Clipboard.GetDataObject();
 
    // Determines whether the data is in a format you can use.
    if(iData.GetDataPresent(DataFormats.Text)) {
       // Yes it is, so display it in a text box.
       textBox2.Text = (String)iData.GetData(DataFormats.Text); 
    }
    else {
       // No it is not.
       textBox2.Text = "Could not retrieve data off the clipboard.";
    }
 }
Private Sub button1_Click(sender As Object, e As System.EventArgs)
    ' Takes the selected text from a text box and puts it on the clipboard.
    If textBox1.SelectedText <> "" Then
        Clipboard.SetDataObject(textBox1.SelectedText)
    Else
        textBox2.Text = "No text selected in textBox1"
    End If
End Sub
 
Private Sub button2_Click(sender As Object, e As System.EventArgs)
    ' Declares an IDataObject to hold the data returned from the clipboard.
    ' Retrieves the data from the clipboard.
    Dim iData As IDataObject = Clipboard.GetDataObject()
    
    ' Determines whether the data is in a format you can use.
    If iData.GetDataPresent(DataFormats.Text) Then
        ' Yes it is, so display it in a text box.
        textBox2.Text = CType(iData.GetData(DataFormats.Text), String)
    Else
        ' No it is not.
        textBox2.Text = "Could not retrieve data off the clipboard."
    End If
End Sub

注釈

クラスで Clipboard 使用する定義済みの形式の一覧については、 クラスを DataFormats 参照してください。

を呼び出 SetDataObject してクリップボードにデータを配置し、現在の内容を置き換えます。 クリップボードにデータの永続的なコピーを配置するには、 パラメーターを copytrue設定します。

注意

クリップボードに複数の形式でデータを配置するには、 クラスまたは 実装をIDataObject使用DataObjectします。 クリップボードに複数の形式でデータを配置して、形式要件がわからないターゲット アプリケーションがデータを正常に取得できる可能性を最大化します。

を呼び出 GetDataObject して、クリップボードからデータを取得します。 データは、 インターフェイスを実装 IDataObject するオブジェクトとして返されます。 および フィールドでIDataObjectDataFormats指定されたメソッドを使用して、 オブジェクトからデータを抽出します。 取得したデータの形式がわからない場合は、 インターフェイスの メソッドIDataObjectGetFormats呼び出して、データが格納されているすべての形式の一覧を取得します。 次に、 GetData インターフェイスの メソッドを IDataObject 呼び出し、アプリケーションで使用できる形式を指定します。

.NET Framework 2.0 では、 クラスには、Clipboardシステムクリップボードの操作を容易にする追加のメソッドが用意されています。 メソッドを Clear 呼び出して、クリップボードからすべてのデータを削除します。 クリップボードに特定の形式のデータを追加するには、既存のデータを置き換え、適切な SetFormat メソッド (など SetText) を呼び出すか、 メソッドを SetData 呼び出して形式を指定します。 クリップボードから特定の形式のデータを取得するには、最初に適切な ContainsFormat メソッド (など ContainsText) を呼び出して、クリップボードにその形式のデータが含まれているかどうかを判断してから、適切な GetFormat メソッド (など GetText) を呼び出して、クリップボードにデータが含まれている場合にデータを取得します。 これらの操作で形式を指定するには、代わりに メソッドと GetData メソッドを呼び出ContainsDataします。

注意

すべての Windows ベースのアプリケーションはシステムクリップボードを共有するため、別のアプリケーションに切り替えると内容が変更される可能性があります。

オブジェクトをクリップボードに格納するには、それがシリアル化できる必要があります。 クリップボード メソッドにシリアル化できないオブジェクトを渡すと、例外はスローされずにメソッドが失敗します。 シリアル化の詳細については、 を参照してください System.Runtime.Serialization 。 ターゲット アプリケーションで非常に具体的なデータ形式が必要な場合、シリアル化プロセスでデータに追加されたヘッダーによって、アプリケーションがデータを認識できなくなる可能性があります。 データ形式を保持するには、 に配列MemoryStreamとしてデータをByte追加し、 SetData を メソッドに渡MemoryStreamします。

Clipboard クラスは、STA (シングル スレッド アパートメント) モードに設定されたスレッドでのみ使用できます。 このクラスを使用するには、お使いの Main メソッドが STAThreadAttribute 属性でマークされているようにします。

クリップボードでメタファイル形式を使用する場合は、特別な考慮事項が必要になる場合があります。 クラスの現在のDataObject実装には制限があるため、.NET Frameworkで使用されるメタファイル形式は、古いメタファイル形式を使用するアプリケーションでは認識されない場合があります。 この場合は、Win32 クリップボード アプリケーション プログラミング インターフェイス (API) と相互運用する必要があります。

メソッド

Clear()

すべてのデータをクリップボードから削除します。

ContainsAudio()

クリップボードに WaveAudio 形式のデータが存在するかどうかを示します。

ContainsData(String)

指定した形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。

ContainsFileDropList()

FileDrop 形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。

ContainsImage()

Bitmap 形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。

ContainsText()

オペレーティング システムに応じて、Text 形式または UnicodeText 形式のデータがクリップボードに存在するかどうかを示します。

ContainsText(TextDataFormat)

指定した TextDataFormat 値で示される形式のテキスト データがクリップボードに存在するかどうかを示します。

GetAudioStream()

クリップボードからオーディオ ストリームを取得します。

GetData(String)

クリップボードから指定した形式でデータを取得します。

GetDataObject()

現在システム クリップボードにあるデータを取得します。

GetFileDropList()

ファイル名のコレクションをクリップボードから取得します。

GetImage()

クリップボードからイメージを取得します。

GetText()

オペレーティング システムに応じて、クリップボードから Text 形式または UnicodeText 形式でテキスト データを取得します。

GetText(TextDataFormat)

クリップボードから、指定した TextDataFormat 値で示される形式でテキスト データを取得します。

SetAudio(Byte[])

クリップボードをクリアし、Byte 配列を WaveAudio に変換してから、Stream 形式で追加します。

SetAudio(Stream)

クリップボードをクリアし、StreamWaveAudio 形式で追加します。

SetData(String, Object)

クリップボードをクリアし、データを指定した形式で追加します。

SetDataObject(Object)

クリップボードをクリアし、データをクリップボードに非永続的に貼り付けます。

SetDataObject(Object, Boolean)

クリップボードをクリアした後でデータをクリップボードに貼り付け、そのデータをアプリケーションが終了してもクリップボードに残しておくかどうかを指定します。

SetDataObject(Object, Boolean, Int32, Int32)

クリップボードをクリアした後、指定した回数、指定した試行間隔でクリップボードにデータの貼り付けを試み、オプションで、アプリケーションが終了したときにクリップボードにデータを残したままにします。

SetFileDropList(StringCollection)

クリップボードをクリアし、ファイル名のコレクションを FileDrop 形式で追加します。

SetImage(Image)

クリップボードをクリアし、ImageBitmap 形式で追加します。

SetText(String)

クリップボードをクリアし、オペレーティング システムに応じて、テキスト データを Text 形式または UnicodeText 形式で追加します。

SetText(String, TextDataFormat)

クリップボードをクリアし、テキスト データを、指定した TextDataFormat 値で示される形式で追加します。

適用対象

こちらもご覧ください