Clipboard クラス

定義

システム クリップボードにデータを貼り付けるメソッド、またはシステム クリップボードのデータを取得するメソッドを提供します。Provides methods to place data on and retrieve data from the system Clipboard. このクラスは継承できません。This class cannot be inherited.

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

次のコード例では、Clipboard メソッドを使用して、データをシステムクリップボードに配置して取得します。The following code example uses Clipboard methods to place data on and retrieve it from the system Clipboard. このコードでは、button1button2textBox1、および textBox2 が作成され、フォームに配置されていることを前提としています。This code assumes button1, button2, textBox1, and textBox2 have been created and placed on the form.

button1_Click メソッドは、テキストボックスから選択されたテキストを取得してシステムクリップボードに配置するために SetDataObject を呼び出します。The button1_Click method calls SetDataObject to take selected text from the text box and place it on the system Clipboard.

button2_Click メソッドは GetDataObject を呼び出して、システムクリップボードからデータを取得します。The button2_Click method calls GetDataObject to retrieve data from the system Clipboard. このコードでは、IDataObjectDataFormats を使用して返されたデータを抽出し、textBox2にデータを表示します。The code uses IDataObject and DataFormats to extract the data returned and displays the data in 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 クラスを参照してください。For a list of predefined formats to use with the Clipboard class, see the DataFormats class.

SetDataObject を呼び出して、データをクリップボードに配置し、現在の内容を置き換えます。Call SetDataObject to put data on the Clipboard, replacing its current contents. クリップボードにデータの永続的なコピーを配置するには、copy パラメーターを trueに設定します。To place a persistent copy of the data on the Clipboard, set the copy parameter to true.

注意

データを複数の形式でクリップボードに配置するには、DataObject クラスまたは IDataObject の実装を使用します。To place data on the Clipboard in multiple formats, use the DataObject class or an IDataObject implementation. データをクリップボードに複数の形式で配置すると、対象アプリケーションでは、不明な形式の要件によってデータを正常に取得できる可能性が最大になります。Place data on the Clipboard in multiple formats to maximize the possibility that a target application, whose format requirements you might not know, can successfully retrieve the data.

GetDataObject を呼び出して、クリップボードからデータを取得します。Call GetDataObject to retrieve data from the Clipboard. データは、IDataObject インターフェイスを実装するオブジェクトとして返されます。The data is returned as an object that implements the IDataObject interface. DataFormatsIDataObject およびフィールドによって指定されたメソッドを使用して、オブジェクトからデータを抽出します。Use the methods specified by IDataObject and fields in DataFormats to extract the data from the object. 取得したデータの形式がわからない場合は、IDataObject インターフェイスの GetFormats メソッドを呼び出して、データが格納されているすべての形式の一覧を取得します。If you do not know the format of the data you retrieved, call the GetFormats method of the IDataObject interface to get a list of all formats that data is stored in. 次に、IDataObject インターフェイスの GetData メソッドを呼び出し、アプリケーションで使用できる形式を指定します。Then call the GetData method of the IDataObject interface, and specify a format that your application can use.

.NET Framework 2.0.NET Framework 2.0では、Clipboard クラスに、システムクリップボードの操作を容易にする追加のメソッドが用意されています。In .NET Framework 2.0.NET Framework 2.0, the Clipboard class provides additional methods that make it easier to work with the system Clipboard. Clear メソッドを呼び出して、クリップボードからすべてのデータを削除します。Call the Clear method to remove all data from the Clipboard. 特定の形式のデータをクリップボードに追加するには、既存のデータを置き換えるか、SetTextなどの適切な Setformatメソッドを呼び出すか、SetData メソッドを呼び出して形式を指定します。To add data of a particular format to the Clipboard, replacing the existing data, call the appropriate SetFormat method, such as SetText, or call the SetData method to specify the format. クリップボードから特定の形式のデータを取得するには、まず適切な Containsformatメソッド (ContainsTextなど) を呼び出して、クリップボードにその形式のデータが含まれているかどうかを判断し、適切な Getformatメソッド (GetTextなど) を呼び出して、クリップボードに格納されているデータを取得します。To retrieve data of a particular format from the Clipboard, first call the appropriate ContainsFormat method (such as ContainsText) method to determine whether the Clipboard contains data in that format, and then call the appropriate GetFormat method (such as GetText) to retrieve the data if the Clipboard contains it. これらの操作で形式を指定するには、代わりに ContainsData および GetData メソッドを呼び出します。To specify the format in these operations, call the ContainsData and GetData methods instead.

注意

Windows ベースのすべてのアプリケーションはシステムクリップボードを共有しているので、別のアプリケーションに切り替えたときにコンテンツが変更される可能性があります。All Windows-based applications share the system Clipboard, so the contents are subject to change when you switch to another application.

オブジェクトをクリップボードに格納するには、オブジェクトをシリアル化できる必要があります。An object must be serializable for it to be put on the Clipboard. シリアル化できないオブジェクトをクリップボードメソッドに渡すと、メソッドは例外をスローせずに失敗します。If you pass a non-serializable object to a Clipboard method, the method will fail without throwing an exception. シリアル化の詳細については、「System.Runtime.Serialization」を参照してください。See System.Runtime.Serialization for more information on serialization. ターゲットアプリケーションが非常に特殊なデータ形式を必要とする場合は、シリアル化プロセスでデータに追加されたヘッダーによって、アプリケーションがデータを認識できなくなることがあります。If your target application requires a very specific data format, the headers added to the data in the serialization process may prevent the application from recognizing your data. データ形式を保持するには、データを Byte 配列として MemoryStream に追加し、MemoryStreamSetData メソッドに渡します。To preserve your data format, add your data as a Byte array to a MemoryStream and pass the MemoryStream to the SetData method.

Clipboard クラスは、シングルスレッドアパートメント (STA) モードに設定されているスレッドでのみ使用できます。The Clipboard class can only be used in threads set to single thread apartment (STA) mode. このクラスを使用するには、Main メソッドが STAThreadAttribute 属性でマークされていることを確認します。To use this class, ensure that your Main method is marked with the STAThreadAttribute attribute.

メタファイル形式をクリップボードと共に使用する場合は、特別な考慮事項が必要になることがあります。Special considerations may be necessary when using the metafile format with the Clipboard. DataObject クラスの現在の実装の制限により、.NET Framework で使用されるメタファイル形式は、古いメタファイル形式を使用するアプリケーションで認識されない場合があります。Due to a limitation in the current implementation of the DataObject class, the metafile format used by the .NET Framework may not be recognized by applications that use an older metafile format. この場合は、Win32 クリップボードアプリケーションプログラミングインターフェイス (Api) と相互運用する必要があります。In this case, you must interoperate with the Win32 Clipboard application programming interfaces (APIs).

メソッド

Clear()

すべてのデータをクリップボードから削除します。Removes all data from the Clipboard.

ContainsAudio()

クリップボードに WaveAudio 形式のデータが存在するかどうかを示します。Indicates whether there is data on the Clipboard in the WaveAudio format.

ContainsData(String)

指定した形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。Indicates whether there is data on the Clipboard that is in the specified format or can be converted to that format.

ContainsFileDropList()

FileDrop 形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。Indicates whether there is data on the Clipboard that is in the FileDrop format or can be converted to that format.

ContainsImage()

Bitmap 形式のデータ、またはその形式に変換できるデータがクリップボードに存在するかどうかを示します。Indicates whether there is data on the Clipboard that is in the Bitmap format or can be converted to that format.

ContainsText()

オペレーティング システムに応じて、Text 形式または UnicodeText 形式のデータがクリップボードに存在するかどうかを示します。Indicates whether there is data on the Clipboard in the Text or UnicodeText format, depending on the operating system.

ContainsText(TextDataFormat)

指定した TextDataFormat 値で示される形式のテキスト データがクリップボードに存在するかどうかを示します。Indicates whether there is text data on the Clipboard in the format indicated by the specified TextDataFormat value.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetAudioStream()

クリップボードからオーディオ ストリームを取得します。Retrieves an audio stream from the Clipboard.

GetData(String)

クリップボードから指定した形式でデータを取得します。Retrieves data from the Clipboard in the specified format.

GetDataObject()

現在システム クリップボードにあるデータを取得します。Retrieves the data that is currently on the system Clipboard.

GetFileDropList()

ファイル名のコレクションをクリップボードから取得します。Retrieves a collection of file names from the Clipboard.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetImage()

クリップボードからイメージを取得します。Retrieves an image from the Clipboard.

GetText()

オペレーティング システムに応じて、クリップボードから Text 形式または UnicodeText 形式でテキスト データを取得します。Retrieves text data from the Clipboard in the Text or UnicodeText format, depending on the operating system.

GetText(TextDataFormat)

クリップボードから、指定した TextDataFormat 値で示される形式でテキスト データを取得します。Retrieves text data from the Clipboard in the format indicated by the specified TextDataFormat value.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
SetAudio(Byte[])

クリップボードをクリアし、Byte 配列を WaveAudio に変換してから、Stream 形式で追加します。Clears the Clipboard and then adds a Byte array in the WaveAudio format after converting it to a Stream.

SetAudio(Stream)

クリップボードをクリアし、StreamWaveAudio 形式で追加します。Clears the Clipboard and then adds a Stream in the WaveAudio format.

SetData(String, Object)

クリップボードをクリアし、データを指定した形式で追加します。Clears the Clipboard and then adds data in the specified format.

SetDataObject(Object)

クリップボードをクリアし、データをクリップボードに非永続的に貼り付けます。Clears the Clipboard and then places nonpersistent data on it.

SetDataObject(Object, Boolean)

クリップボードをクリアした後でデータをクリップボードに貼り付け、そのデータをアプリケーションが終了してもクリップボードに残しておくかどうかを指定します。Clears the Clipboard and then places data on it and specifies whether the data should remain after the application exits.

SetDataObject(Object, Boolean, Int32, Int32)

クリップボードをクリアした後、指定した回数、指定した試行間隔でクリップボードにデータの貼り付けを試み、オプションで、アプリケーションが終了したときにクリップボードにデータを残したままにします。Clears the Clipboard and then attempts to place data on it the specified number of times and with the specified delay between attempts, optionally leaving the data on the Clipboard after the application exits.

SetFileDropList(StringCollection)

クリップボードをクリアし、ファイル名のコレクションを FileDrop 形式で追加します。Clears the Clipboard and then adds a collection of file names in the FileDrop format.

SetImage(Image)

クリップボードをクリアし、ImageBitmap 形式で追加します。Clears the Clipboard and then adds an Image in the Bitmap format.

SetText(String)

クリップボードをクリアし、オペレーティング システムに応じて、テキスト データを Text 形式または UnicodeText 形式で追加します。Clears the Clipboard and then adds text data in the Text or UnicodeText format, depending on the operating system.

SetText(String, TextDataFormat)

クリップボードをクリアし、テキスト データを、指定した TextDataFormat 値で示される形式で追加します。Clears the Clipboard and then adds text data in the format indicated by the specified TextDataFormat value.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください