Clipboard.SetDataObject メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クリップボードをクリアし、データをクリップボードに追加します。
オーバーロード
SetDataObject(Object) |
クリップボードをクリアし、データをクリップボードに非永続的に貼り付けます。 |
SetDataObject(Object, Boolean) |
クリップボードをクリアした後でデータをクリップボードに貼り付け、そのデータをアプリケーションが終了してもクリップボードに残しておくかどうかを指定します。 |
SetDataObject(Object, Boolean, Int32, Int32) |
クリップボードをクリアした後、指定した回数、指定した試行間隔でクリップボードにデータの貼り付けを試み、オプションで、アプリケーションが終了したときにクリップボードにデータを残したままにします。 |
SetDataObject(Object)
クリップボードをクリアし、データをクリップボードに非永続的に貼り付けます。
public:
static void SetDataObject(System::Object ^ data);
public static void SetDataObject (object data);
static member SetDataObject : obj -> unit
Public Shared Sub SetDataObject (data As Object)
パラメーター
- data
- Object
クリップボードに貼り付けるデータ。
例外
データをクリップボードに貼り付けることができませんでした。 この例外は、通常、クリップボードが別のプロセスで使用されている場合に発生します。
現在のスレッドがシングル スレッド アパートメント (STA: Single Thread Apartment) モードになっていません。 アプリケーションの Main
メソッドに STAThreadAttribute を追加してください。
data
の値が null
です。
例
次のコード例では、非永続テキスト データをシステム クリップボードに配置するために使用 SetDataObject します。 button1_Click
このメソッドでは、選択したテキストがクリップボードからtextBox1
コピーされ、クリップボードに貼り付けられます。 button2_Click
メソッドでは、情報はクリップボードから取得され、に表示されますtextBox2
。 このコードは、、、button2
、、textBox1
を想定button1
し、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
注釈
アプリケーションが終了すると、システム クリップボードからデータが削除されます。
このメソッドは、データを 100 ミリ秒間隔で 10 回設定しようと試み、すべての試行が失敗した場合に an を ExternalException スローします。
注意
オブジェクトをクリップボードに格納するには、それがシリアル化できる必要があります。 このメソッドにシリアル化できないオブジェクトを渡すと、例外がスローされずに失敗します。 シリアル化の詳細については、以下を参照してください System.Runtime.Serialization 。
Clipboard クラスは、STA (シングル スレッド アパートメント) モードに設定されたスレッドでのみ使用できます。 このクラスを使用するには、お使いの Main
メソッドが STAThreadAttribute 属性でマークされているようにします。
こちらもご覧ください
適用対象
SetDataObject(Object, Boolean)
クリップボードをクリアした後でデータをクリップボードに貼り付け、そのデータをアプリケーションが終了してもクリップボードに残しておくかどうかを指定します。
public:
static void SetDataObject(System::Object ^ data, bool copy);
public static void SetDataObject (object data, bool copy);
static member SetDataObject : obj * bool -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean)
パラメーター
- data
- Object
クリップボードに貼り付けるデータ。
- copy
- Boolean
このアプリケーションが終了した後でも、データをクリップボードに残しておく場合は true
。それ以外の場合は false
。
例外
データをクリップボードに貼り付けることができませんでした。 この例外は、通常、クリップボードが別のプロセスで使用されている場合に発生します。
現在のスレッドがシングル スレッド アパートメント (STA: Single Thread Apartment) モードになっていません。 アプリケーションの Main
メソッドに STAThreadAttribute を追加してください。
data
の値が null
です。
例
次のメソッドは、アプリケーションで実行されます。 選択したテキスト データの永続的なコピーがシステム クリップボードのテキスト ボックスに配置されます。 このコードは、textBox1
フォーム上にbutton1
作成され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, true );
}
else
{
textBox2->Text = "No text selected in textBox1";
}
}
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, true);
else
textBox2.Text = "No text selected in textBox1";
}
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, True)
Else
textBox2.Text = "No text selected in textBox1"
End If
End Sub
別のアプリケーションでは、次のメソッドは、システム クリップボードからテキストを取得し、テキスト textBox2
を貼り付けます。 このコードは、フォームを button2
想定して textBox2
作成され、フォームに配置されています。
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 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 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
注釈
パラメーターが指定 copy
されている場合、 false
アプリケーションの終了時にシステム クリップボードからデータが削除されます。
このメソッドは、データを 100 ミリ秒間隔で 10 回設定しようと試み、すべての試行が失敗した場合に an を ExternalException スローします。
注意
オブジェクトをクリップボードに格納するには、それがシリアル化できる必要があります。 このメソッドにシリアル化できないオブジェクトを渡すと、例外がスローされずに失敗します。 シリアル化の詳細については、以下を参照してください System.Runtime.Serialization 。
Clipboard クラスは、STA (シングル スレッド アパートメント) モードに設定されたスレッドでのみ使用できます。 このクラスを使用するには、お使いの Main
メソッドが STAThreadAttribute 属性でマークされているようにします。
こちらもご覧ください
適用対象
SetDataObject(Object, Boolean, Int32, Int32)
クリップボードをクリアした後、指定した回数、指定した試行間隔でクリップボードにデータの貼り付けを試み、オプションで、アプリケーションが終了したときにクリップボードにデータを残したままにします。
public:
static void SetDataObject(System::Object ^ data, bool copy, int retryTimes, int retryDelay);
public static void SetDataObject (object data, bool copy, int retryTimes, int retryDelay);
static member SetDataObject : obj * bool * int * int -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean, retryTimes As Integer, retryDelay As Integer)
パラメーター
- data
- Object
クリップボードに貼り付けるデータ。
- copy
- Boolean
このアプリケーションが終了した後でも、データをクリップボードに残しておく場合は true
。それ以外の場合は false
。
- retryTimes
- Int32
クリップボードにデータの貼り付けを試みる回数。
- retryDelay
- Int32
試行と試行の間の休止時間 (ミリ秒)。
例外
現在のスレッドがシングル スレッド アパートメント (STA: Single Thread Apartment) モードになっていません。 アプリケーションの Main
メソッドに STAThreadAttribute を追加してください。
data
が null
です。
データをクリップボードに貼り付けることができませんでした。 この例外は、通常、クリップボードが別のプロセスで使用されている場合に発生します。
注釈
クリップボードが別のスレッドまたはアプリケーションでビジー状態の場合、クリップボードへのデータの追加が失敗することがあります。 この方法は、クリップボードの使用が多い環境でこの問題を回避するのに役立ちます。
パラメーターが指定 copy
されている場合、 false
アプリケーションの終了時にシステム クリップボードからデータが削除されます。
注意
オブジェクトをクリップボードに格納するには、それがシリアル化できる必要があります。 このメソッドにシリアル化できないオブジェクトを渡すと、例外がスローされずに失敗します。 シリアル化の詳細については、以下を参照してください System.Runtime.Serialization 。
Clipboard クラスは、STA (シングル スレッド アパートメント) モードに設定されたスレッドでのみ使用できます。 このクラスを使用するには、お使いの Main
メソッドが STAThreadAttribute 属性でマークされているようにします。