Partager via


Clipboard.SetDataObject Méthode

Définition

Efface le Presse-papiers puis y ajoute des données.

Surcharges

SetDataObject(Object)

Efface le Presse-papiers puis y place des données non persistantes.

SetDataObject(Object, Boolean)

Efface le Presse-papiers puis y place des données et spécifie si les données doivent rester lorsque l'application se ferme.

SetDataObject(Object, Boolean, Int32, Int32)

Efface le Presse-papiers puis tente d'y placer des données le nombre spécifié de fois et dans le délai spécifié entre les tentatives, en laissant éventuellement les données dans le Presse-papiers lorsque l'utilisateur quitte l'application.

SetDataObject(Object)

Efface le Presse-papiers puis y place des données non persistantes.

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)

Paramètres

data
Object

Données à placer dans le Presse-papiers.

Exceptions

Les données n'ont pas pu être placées dans le 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). Ajoutez STAThreadAttribute à la méthode Main de votre application.

La valeur de data est null.

Exemples

L’exemple de code suivant utilise SetDataObject pour placer les données de texte nonpersistent dans le Presse-papiers système. Dans la button1_Click méthode, le texte sélectionné est copié textBox1 et collé dans le Presse-papiers. Dans la button2_Click méthode, les informations sont récupérées dans le Presse-papiers et affichées dans textBox2. Ce code suppose button1, , et textBox1``button2``textBox2 a été créé et placé sur un formulaire.

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

Les données sont supprimées du Presse-papiers système lorsque l’application quitte.

Cette méthode tente de définir les données dix fois dans les intervalles de 100 millisecondes et lève une ExternalException valeur si toutes les tentatives échouent.

Notes

Un objet doit être sérialisable pour qu’il soit placé dans le Presse-papiers. Si vous transmettez un objet non sérialisable à cette méthode, il échoue sans lever d’exception. Pour System.Runtime.Serialization plus d’informations sur la sérialisation.

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 .

Voir aussi

S’applique à

SetDataObject(Object, Boolean)

Efface le Presse-papiers puis y place des données et spécifie si les données doivent rester lorsque l'application se ferme.

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)

Paramètres

data
Object

Données à placer dans le Presse-papiers.

copy
Boolean

true si vous souhaitez que les données restent dans le Presse-papiers lorsque l'utilisateur quitte l'application ; sinon, false.

Exceptions

Les données n'ont pas pu être placées dans le 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). Ajoutez STAThreadAttribute à la méthode Main de votre application.

La valeur de data est null.

Exemples

La méthode suivante est exécutée dans une application. Il place une copie persistante des données de texte sélectionnées dans la zone de texte du Presse-papiers système. Ce code suppose button1, textBox1et a été créé et textBox2 placé sur un formulaire.

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

Dans une autre application, la méthode suivante récupère le texte du Presse-papiers système et colle le texte dans textBox2. Ce code suppose button2 et textBox2 a été créé et placé sur un formulaire.

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

Remarques

Si le copy paramètre est false, les données sont supprimées du Presse-papiers système lors de la sortie de l’application.

Cette méthode tente de définir les données dix fois dans les intervalles de 100 millisecondes et lève une ExternalException valeur si toutes les tentatives échouent.

Notes

Un objet doit être sérialisable pour qu’il soit placé dans le Presse-papiers. Si vous transmettez un objet non sérialisable à cette méthode, il échoue sans lever d’exception. Pour System.Runtime.Serialization plus d’informations sur la sérialisation.

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 .

Voir aussi

S’applique à

SetDataObject(Object, Boolean, Int32, Int32)

Efface le Presse-papiers puis tente d'y placer des données le nombre spécifié de fois et dans le délai spécifié entre les tentatives, en laissant éventuellement les données dans le Presse-papiers lorsque l'utilisateur quitte l'application.

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)

Paramètres

data
Object

Données à placer dans le Presse-papiers.

copy
Boolean

true si vous souhaitez que les données restent dans le Presse-papiers lorsque l'utilisateur quitte l'application ; sinon, false.

retryTimes
Int32

Nombre de tentatives de placement des données dans le Presse-papiers.

retryDelay
Int32

Délai d'attente en millisecondes entre les tentatives.

Exceptions

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

data a la valeur null.

retryTimes est inférieur à zéro.

  • ou - retryDelay est inférieur à zéro.

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

Remarques

L’ajout de données au Presse-papiers peut parfois échouer si le Presse-papiers est occupé avec un autre thread ou une autre application. Cette méthode est utile pour contourner ce problème dans les environnements avec une utilisation intensive du Presse-papiers.

Si le copy paramètre est false, les données sont supprimées du Presse-papiers système lors de la sortie de l’application.

Notes

Un objet doit être sérialisable pour qu’il soit placé dans le Presse-papiers. Si vous transmettez un objet non sérialisable à cette méthode, il échoue sans lever d’exception. Pour System.Runtime.Serialization plus d’informations sur la sérialisation.

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 .

Voir aussi

S’applique à