Clipboard.GetDataObject 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.
Récupère les données actuellement 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
Qui IDataObject représente les données actuellement dans le Presse-papiers ou null s’il n’y a pas de données dans le Presse-papiers.
Exceptions
Les données n’ont pas pu être récupérées dans le Presse-papiers. Cela se produit généralement lorsque le Presse-papiers est utilisé par un autre processus.
Le thread actuel n’est pas en mode STA (Single-Threaded Apartment) et la valeur de propriété MessageLoop est true. Ajoutez la STAThreadAttribute méthode de Main votre application.
Exemples
L’exemple de code suivant utilise des Clipboard méthodes pour placer des données sur et les récupérer à partir du Presse-papiers système. Ce code suppose que , , button1button2et textBox1 ont été placés textBox2sur le formulaire.
Les button1_Click appels SetDataObject de méthode pour prendre le texte sélectionné à partir de 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 dans les intervalles de 100 millisecondes et lève une ExternalException valeur si toutes les tentatives échouent.
Note
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 .