Clipboard.SetDataObject Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
, textBox1
et 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
.
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 .