Clipboard.SetDataObject Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Löscht die Zwischenablage und fügt ihm dann Daten hinzu.
Überlädt
SetDataObject(Object) |
Löscht die Zwischenablage und platziert dann nicht beständige Daten darin. |
SetDataObject(Object, Boolean) |
Löscht die Zwischenablage und platziert dann Daten darin und gibt an, ob die Daten nach Beenden der Anwendung in der Zwischenablage beibehalten werden sollen. |
SetDataObject(Object, Boolean, Int32, Int32) |
Löscht die Zwischenablage und versucht dann, die Daten in der angegebenen Häufigkeit und mit dem angegebenen zeitlichen Abstand zwischen den Versuchen abzulegen. Die Daten werden dabei optional nach dem Beenden der Anwendung in der Zwischenablage belassen. |
SetDataObject(Object)
Löscht die Zwischenablage und platziert dann nicht beständige Daten darin.
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)
Parameter
- data
- Object
Die in der Zwischenablage abzulegenden Daten.
Ausnahmen
Es konnten keine Daten in der Zwischenablage abgelegt werden. Dies tritt i. d. R. auf, wenn die Zwischenablage von einem anderen Prozess verwendet wird.
Der aktuelle Thread befindet sich nicht im STA-Modus (Singlethread-Apartment). Fügen Sie der Main
-Methode der Anwendung das STAThreadAttribute hinzu.
Der Wert von data
ist null
.
Beispiele
Im folgenden Codebeispiel werden SetDataObject nichtpersistente Textdaten in die Systemablage eingefügt. In der button1_Click
Methode wird der markierte Text aus textBox1
der Zwischenablage kopiert und eingefügt. In der button2_Click
Methode werden die Informationen aus der Zwischenablage abgerufen und in textBox2
. Dieser Code setzt voraus button1
, button2
dass textBox1
, , und textBox2
wurde erstellt und auf einem Formular platziert.
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
Hinweise
Daten werden aus der Systemablage gelöscht, wenn die Anwendung beendet wird.
Diese Methode versucht, die Daten zehnmal in 100-Millisekunden-Intervallen festzulegen, und löst ein ExternalException , wenn alle Versuche nicht erfolgreich sind.
Hinweis
Ein Objekt muss serialisierbar sein, damit es in der Zwischenablage platziert werden kann. Wenn Sie ein nicht serialisierbares Objekt an diese Methode übergeben, schlägt es fehl, ohne eine Ausnahme zu auslösen. Weitere Informationen zur Serialisierung finden Sie unter System.Runtime.Serialization
Die Clipboard Klasse kann nur in Threads verwendet werden, die auf den Sta-Modus (Single Thread Apartment) festgelegt sind. Um diese Klasse zu verwenden, stellen Sie sicher, dass Ihre Main
Methode mit dem STAThreadAttribute Attribut gekennzeichnet ist.
Siehe auch
Gilt für
SetDataObject(Object, Boolean)
Löscht die Zwischenablage und platziert dann Daten darin und gibt an, ob die Daten nach Beenden der Anwendung in der Zwischenablage beibehalten werden sollen.
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)
Parameter
- data
- Object
Die in der Zwischenablage abzulegenden Daten.
- copy
- Boolean
true
, wenn die Daten nach dem Beenden dieser Anwendung in der Zwischenablage beibehalten werden sollen, andernfalls false
.
Ausnahmen
Es konnten keine Daten in der Zwischenablage abgelegt werden. Dies tritt i. d. R. auf, wenn die Zwischenablage von einem anderen Prozess verwendet wird.
Der aktuelle Thread befindet sich nicht im STA-Modus (Singlethread-Apartment). Fügen Sie der Main
-Methode der Anwendung das STAThreadAttribute hinzu.
Der Wert von data
ist null
.
Beispiele
Die folgende Methode wird in einer Anwendung ausgeführt. Es platziert eine dauerhafte Kopie der markierten Textdaten im Textfeld in der Systemablage. Dieser Code geht davon aus button1
, textBox1
dass er textBox2
erstellt und auf einem Formular platziert wurde.
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
In einer anderen Anwendung ruft die folgende Methode den Text aus der Systemablage ab und fügt den Text in textBox2
. Dieser Code setzt voraus button2
, dass er textBox2
erstellt und auf einem Formular platziert wurde.
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
Hinweise
Wenn der copy
Parameter lautet false
, werden die Daten aus der Systemablage gelöscht, wenn die Anwendung beendet wird.
Diese Methode versucht, die Daten zehnmal in 100-Millisekunden-Intervallen festzulegen, und löst ein ExternalException , wenn alle Versuche nicht erfolgreich sind.
Hinweis
Ein Objekt muss serialisierbar sein, damit es in der Zwischenablage platziert werden kann. Wenn Sie ein nicht serialisierbares Objekt an diese Methode übergeben, schlägt es fehl, ohne eine Ausnahme zu auslösen. Weitere Informationen zur Serialisierung finden Sie unter System.Runtime.Serialization
Die Clipboard Klasse kann nur in Threads verwendet werden, die auf den Sta-Modus (Single Thread Apartment) festgelegt sind. Um diese Klasse zu verwenden, stellen Sie sicher, dass Ihre Main
Methode mit dem STAThreadAttribute Attribut gekennzeichnet ist.
Siehe auch
Gilt für
SetDataObject(Object, Boolean, Int32, Int32)
Löscht die Zwischenablage und versucht dann, die Daten in der angegebenen Häufigkeit und mit dem angegebenen zeitlichen Abstand zwischen den Versuchen abzulegen. Die Daten werden dabei optional nach dem Beenden der Anwendung in der Zwischenablage belassen.
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)
Parameter
- data
- Object
Die in der Zwischenablage abzulegenden Daten.
- copy
- Boolean
true
, wenn die Daten nach dem Beenden dieser Anwendung in der Zwischenablage beibehalten werden sollen, andernfalls false
.
- retryTimes
- Int32
Die Häufigkeit, mit der versucht wird, die Daten in der Zwischenablage abzulegen.
- retryDelay
- Int32
Die Dauer in Millisekunden, die zwischen den Versuchen gewartet wird.
Ausnahmen
Der aktuelle Thread befindet sich nicht im STA-Modus (Singlethread-Apartment). Fügen Sie der Main
-Methode der Anwendung das STAThreadAttribute hinzu.
data
ist null
.
retryTimes
ist kleiner als Null.
- oder -
retryDelay
ist kleiner als Null.
Es konnten keine Daten in der Zwischenablage abgelegt werden. Dies tritt i. d. R. auf, wenn die Zwischenablage von einem anderen Prozess verwendet wird.
Hinweise
Das Hinzufügen von Daten zur Zwischenablage kann gelegentlich fehlschlagen, wenn die Zwischenablage mit einem anderen Thread oder einer anderen Anwendung beschäftigt ist. Diese Methode ist hilfreich, um dieses Problem in Umgebungen mit schwerer Verwendung der Zwischenablage zu umgehen.
Wenn der copy
Parameter lautet false
, werden die Daten aus der Systemablage gelöscht, wenn die Anwendung beendet wird.
Hinweis
Ein Objekt muss serialisierbar sein, damit es in der Zwischenablage platziert werden kann. Wenn Sie ein nicht serialisierbares Objekt an diese Methode übergeben, schlägt es fehl, ohne eine Ausnahme zu auslösen. Weitere Informationen zur Serialisierung finden Sie unter System.Runtime.Serialization
Die Clipboard Klasse kann nur in Threads verwendet werden, die auf den Sta-Modus (Single Thread Apartment) festgelegt sind. Um diese Klasse zu verwenden, stellen Sie sicher, dass Ihre Main
Methode mit dem STAThreadAttribute Attribut gekennzeichnet ist.