Partager via


Clipboard.GetDataObject Méthode

Définition

Récupère les données figurant dans le Presse-papiers système.

public:
 static System::Windows::Forms::IDataObject ^ GetDataObject();
public static System.Windows.Forms.IDataObject GetDataObject ();
public static System.Windows.Forms.IDataObject? GetDataObject ();
static member GetDataObject : unit -> System.Windows.Forms.IDataObject
Public Shared Function GetDataObject () As IDataObject

Retours

IDataObject

IDataObject représentant les données figurant dans le Presse-papiers ou null en l'absence de données dans le Presse-papiers.

Exceptions

Les données n'ont pas pu être récupérées du Presse-papiers. Cela se produit en général lorsque le Presse-papiers est utilisé par un autre processus.

Le thread actuel n'est pas en mode thread cloisonné (STA, Single-Threaded Apartment) et la propriété MessageLoop a la valeur true. Ajoutez STAThreadAttribute à la méthode Main de votre application.

Exemples

L’exemple de code suivant utilise des Clipboard méthodes pour placer des données sur le Presse-papiers système et les récupérer. Ce code suppose button1, et button2``textBox1``textBox2 a été placé sur le formulaire.

La button1_Click méthode appelle SetDataObject à prendre le texte sélectionné dans la zone de texte et à le placer dans le Presse-papiers système.

La button2_Click méthode appelle GetDataObject pour récupérer des données à partir du Presse-papiers système. Le code utilise IDataObject et DataFormats extrait les données retournées. Les données sont affichées dans 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

Remarques

Étant donné que le type de données de l’objet retourné à partir du Presse-papiers peut varier, cette méthode retourne les données dans un IDataObject. Vous pouvez ensuite utiliser des méthodes de l’interface IDataObject pour extraire les données dans son type de données approprié.

Cette méthode tente d’obtenir les données dix fois par intervalles de 100 millisecondes et lève une ExternalException exception si toutes les tentatives échouent.

Notes

La Clipboard classe ne peut être utilisée que dans les threads définis en mode STA (Single Thread Apartment). Pour utiliser cette classe, vérifiez que votre Main méthode est marquée avec l’attribut STAThreadAttribute .

S’applique à

Voir aussi