Freigeben über


Clipboard.GetDataObject-Methode

Ruft die Daten ab, die sich gegenwärtig in der Zwischenablage des Systems befinden.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Shared Function GetDataObject As IDataObject
'Usage
Dim returnValue As IDataObject

returnValue = Clipboard.GetDataObject
public static IDataObject GetDataObject ()
public:
static IDataObject^ GetDataObject ()
public static IDataObject GetDataObject ()
public static function GetDataObject () : IDataObject

Rückgabewert

Ein IDataObject, das die aktuell in der Zwischenablage vorhandenen Daten darstellt, oder NULL (Nothing in Visual Basic), wenn sich keine Daten in der Zwischenablage befinden.

Ausnahmen

Ausnahmetyp Bedingung

ExternalException

Es konnten keine Daten aus der Zwischenablage abgerufen werden. Dies tritt i. d. R. auf, wenn die Zwischenablage von einem anderen Prozess verwendet wird.

ThreadStateException

Der aktuelle Thread befindet sich nicht im STA-Modus (Singlethread-Apartment), und der Application.MessageLoop-Eigenschaftenwert lautet true. Fügen Sie der Main-Methode der Anwendung das STAThreadAttribute hinzu.

Hinweise

Da der Datentyp des von der Zwischenablage zurückgegebenen Objekts variieren kann, gibt diese Methode die Daten in einem IDataObject zurück. Anschließend können Sie Methoden der IDataObject-Schnittstelle verwenden, um die Daten mit dem geeigneten Datentyp zu extrahieren.

Diese Methode versucht zehnmal in Intervallen von 100 Millisekunden, die Daten abzurufen. Wenn alle Versuche erfolglos waren, wird eine ExternalException ausgelöst.

Hinweis

Die Clipboard-Klasse kann nur in Threads verwendet werden, die auf den STA-Modus (Singlethread-Apartment) festgelegt sind. Stellen Sie zum Verwenden dieser Klasse sicher, dass die Main-Methode mit dem STAThreadAttribute-Attribut gekennzeichnet ist.

Beispiel

Im folgenden Codebeispiel werden mithilfe von Clipboard-Methoden Daten in der Zwischenablage des Systems abgelegt und von dort abgerufen. In diesem Code wird davon ausgegangen, dass button1, button2, textBox1 und textBox2 in einem Formular platziert wurden.

Die button1_Click-Methode ruft SetDataObject auf, um den ausgewählten Text aus dem Textfeld abzurufen und diesen in der Zwischenablage des Systems abzulegen.

Die button2_Click-Methode ruft GetDataObject auf, um Daten aus der Zwischenablage des Systems abzurufen. Der Code verwendet IDataObject und DataFormats, um die zurückgegebenen Daten zu extrahieren. Die Daten werden in textBox2 angezeigt.

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
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:
   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.get_SelectedText().Equals("")) {
        Clipboard.SetDataObject(textBox1.get_SelectedText());
    }
    else {
        textBox2.set_Text("No text selected in textBox1");
    }
} //button1_Click

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.set_Text((String)(iData.GetData(DataFormats.Text)));
    }
    else {
        // No it is not.
        textBox2.set_Text("Could not retrieve data off the clipboard.");
    }
} //button2_Click
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.";
    }
 }
 

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

Clipboard-Klasse
Clipboard-Member
System.Windows.Forms-Namespace
DataObject
DataFormats
SetDataObject
IDataObject