Clipboard.SetDataObject メソッド (Object)
データをシステム クリップボードに非永続的に貼り付けます。
Overloads Public Shared Sub SetDataObject( _
ByVal data As Object _)
[C#]
public static void SetDataObject(objectdata);
[C++]
public: static void SetDataObject(Object* data);
[JScript]
public static function SetDataObject(
data : Object);
パラメータ
- data
クリップボードに貼り付けるデータ。
例外
例外の種類 | 条件 |
---|---|
ExternalException | データをクリップボードに貼り付けることができませんでした。 |
ThreadStateException | アプリケーションの ApartmentState プロパティは、 ApartmentState.STA には設定されません。 |
ArgumentNullException | data の値が null 参照 (Visual Basic では Nothing) です。 |
解説
アプリケーションの終了時に、データがシステム クリップボードから削除されます。
メモ クリップボードに格納するには、クラスはシリアル化可能である必要があります。シリアル化の詳細については、「 オブジェクトのシリアル化 」を参照してください。
使用例
SetDataObject を使用して、データを非永続的にシステム クリップボードに貼り付ける例を次に示します。 button1_Click
メソッドでは、選択されたテキストが textBox1
からコピーされ、クリップボードに貼り付けられます。 button2_Click
メソッドでは、クリップボードから情報が取得され、 textBox2
に表示されます。このコードは、 button1
、 button2
、 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)
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.";
}
}
必要条件
プラットフォーム: 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