Clipboard クラス
システム クリップボードにデータを貼り付けるメソッド、またはシステム クリップボードのデータを取得するメソッドを提供します。このクラスは継承できません。
この型のすべてのメンバの一覧については、Clipboard メンバ を参照してください。
System.Object
System.Windows.Forms.Clipboard
NotInheritable Public Class Clipboard
[C#]
public sealed class Clipboard
[C++]
public __gc __sealed class Clipboard
[JScript]
public class Clipboard
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
Clipboard クラスで使用する定義済みの形式の一覧については、 DataFormats クラスのトピックを参照してください。
データをクリップボードに貼り付けるには、 SetDataObject を呼び出します。クリップボードにデータのコピーを永続的に貼り付けるには、 copy パラメータを true に設定します。
メモ データを複数の形式でクリップボードに貼り付けておくと、データを取り出す側のアプリケーションで使用できるデータ形式がわからなくても、データを正常に取得できます。
クリップボードからデータを取得するには、 GetDataObject を呼び出します。取得対象のデータは、 IDataObject インターフェイスを実装したオブジェクトとして返されます。 IDataObject で指定されているメソッドと、 DataFormats のフィールドを使用して、返されたオブジェクトからデータを抽出します。取得したデータの形式が不明な場合は、 IDataObject インターフェイスの GetFormats メソッドを呼び出し、データの格納形式すべてのリストを取得します。次に IDataObject インターフェイスの GetData メソッドを呼び出し、取り出す側のアプリケーションで使用できる形式を指定します。
メモ システム クリップボードはすべての Windows アプリケーションで共有されるため、その内容は、他のアプリケーションに切り替えた場合に変更されることがあります。
メモ クリップボードに格納するには、クラスはシリアル化可能である必要があります。シリアル化の詳細については、「 オブジェクトのシリアル化 」を参照してください。
使用例
Clipboard のメソッドを使用して、システム クリップボードにデータを貼り付けたり、システム クリップボードからデータを取得する例を次に示します。このコードは、 button1
、 button2
、 textBox1
、および textBox2
が既に作成され、フォームに配置されていることを前提にしています。
button1_Click
メソッドは、 SetDataObject を呼び出して、テキスト ボックス内で選択されているテキストを取り出し、システム クリップボードに貼り付けます。
button2_Click
メソッドは、 GetDataObject を呼び出して、システム クリップボードからデータを取得します。コードは IDataObject と DataFormats を使用して、返されたデータを抽出して textBox2
に表示します。
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 'button1_Click
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 'button2_Click
[C#]
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.";
}
}
[C++]
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(S""))
Clipboard::SetDataObject(textBox1->SelectedText);
else
textBox2->Text = S"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 = dynamic_cast<String*>(iData->GetData(DataFormats::Text));
}
else {
// No it is not.
textBox2->Text = S"Could not retrieve data off the clipboard.";
}
}
[JScript]
private function button1_Click(sender : Object, e : System.EventArgs) {
//Take the selected text from a text box and put it on the clipboard.
if(textBox1.SelectedText != "")
Clipboard.SetDataObject(textBox1.SelectedText);
else
textBox2.Text = "No text selected in textBox1";
}
private function button2_Click(sender : Object, e : System.EventArgs) {
//Declare an IDataObject to hold the data returned from the clipboard.
//Then retrieve the data from the clipboard.
var iData : IDataObject = Clipboard.GetDataObject();
//Determine 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.";
}
}
必要条件
名前空間: System.Windows.Forms
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)
参照
Clipboard メンバ | System.Windows.Forms 名前空間 | DataObject | DataFormats | IDataObject