Clipboard.SetDataObject メソッド (Object, Boolean)
データをシステム クリップボードに貼り付け、そのデータをアプリケーションが終了してもクリップボードに残しておくかどうかを指定します。
Overloads Public Shared Sub SetDataObject( _
ByVal data As Object, _ ByVal copy As Boolean _)
[C#]
public static void SetDataObject(objectdata,boolcopy);
[C++]
public: static void SetDataObject(Object* data,boolcopy);
[JScript]
public static function SetDataObject(
data : Object,copy : Boolean);
パラメータ
- data
クリップボードに貼り付けるデータ。 - copy
このアプリケーションが終了した後でも、データをクリップボードに残しておく場合は true 。それ以外の場合は false 。
例外
例外の種類 | 条件 |
---|---|
ExternalException | データをクリップボードに貼り付けることができませんでした。 |
ThreadStateException | アプリケーションの ApartmentState プロパティは、 ApartmentState.STA には設定されません。 |
ArgumentNullException | data の値が null 参照 (Visual Basic では Nothing) です。 |
解説
copy パラメータが false の場合は、アプリケーションが終了したときに、データがシステム クリップボードから削除されます。
メモ クリップボードに格納するには、クラスはシリアル化可能である必要があります。シリアル化の詳細については、「 オブジェクトのシリアル化 」を参照してください。
使用例
あるアプリケーションで次のメソッドが実行されます。このメソッドは、テキスト ボックス内で選択されているテキスト データのコピーをシステム クリップボードに永続的に貼り付けます。このコードは、 button1
、 textBox1
、および 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, True)
Else
textBox2.Text = "No text selected in textBox1"
End If
End Sub 'button1_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, true);
else
textBox2.Text = "No text selected in textBox1";
}
[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, true);
else
textBox2->Text = S"No text selected in textBox1";
}
[JScript]
private function button1_Click(sender : Object, e : System.EventArgs) {
//Take the selected text from a text from a text box and put it on the clipboard.
if(textBox1.SelectedText != "")
Clipboard.SetDataObject(textBox1.SelectedText, true);
else
textBox2.Text = "No text selected in textBox1";
}
別のアプリケーションでは、次のメソッドがシステム クリップボードからテキストを取得し、 textBox2
に貼り付けます。このコードは、 button2
および textBox2
が既に作成され、フォームに配置されていることを前提にしています。
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 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 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 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.";
}
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- UIPermission (システム クリップボードにアクセスするために必要な許可) UIPermissionClipboard.AllClipboard (関連する列挙体)
参照
Clipboard クラス | Clipboard メンバ | System.Windows.Forms 名前空間 | Clipboard.SetDataObject オーバーロードの一覧 | DataObject | DataFormats | IDataObject | GetDataObject