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 してデータを配置し、システム クリップボードから取得します。 このコードは、、、textBox1``button2、がtextBox2作成され、フォームに配置されていることを前提としていますbutton1

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

button2_Clickシステム クリップボードからデータを取得するメソッド呼び出しGetDataObject。 このコードでは、返されたデータを使用 IDataObject して DataFormats 抽出し、データを 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 。 データの永続的なコピーをクリップボードに配置するには、パラメーターtruecopy ..

注意

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

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

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

注意

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

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

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 値で示される形式で追加します。

適用対象

こちらもご覧ください