Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Clipboard, classe

Mise à jour : novembre 2007

Fournit les méthodes permettant de placer des données dans le Presse-papiers système et d'en récupérer. Cette classe ne peut pas être héritée.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

public sealed class Clipboard
public final class Clipboard
public final class Clipboard

Pour obtenir la liste de formats prédéfinis à utiliser avec la classe Clipboard, consultez la classe DataFormats.

Appelez SetDataObject pour placer des données dans le Presse-papiers. Pour placer une copie persistante des données dans le Presse-papiers, affectez true au paramètre copy.

Remarque :

Placez des données dans le Presse-papiers dans plusieurs formats, afin d'accroître les chances de récupération des données par une application cible dont vous pouvez ignorer les exigences de format.

Appelez GetDataObject pour récupérer des données du Presse-papiers. Les données sont retournées sous la forme d'un objet implémentant l'interface IDataObject. Utilisez les méthodes spécifiées par IDataObject et les champs de DataFormats pour extraire les données de l'objet. Si vous ne connaissez pas le format des données que vous avez récupérées, appelez la méthode GetFormats de l'interface IDataObject pour obtenir la liste de tous les formats dans lesquels les données sont stockées. Appelez ensuite la méthode GetData de l'interface IDataObject et spécifiez un format pouvant être utilisé par votre application.

Dans .NET Framework version 2.0, la classe Clipboard fournit des méthodes supplémentaires qui simplifient l'utilisation du Presse-papiers système. Appelez la méthode Clear pour supprimer toutes les données du Presse-papiers. Pour ajouter des données d'un format particulier au Presse-papiers, appelez la méthode SetFormat appropriée, telle que SetText, ou appelez la méthode SetData pour spécifier le format. Pour récupérer des données d'un format particulier du Presse-papiers, appelez d'abord la méthode ContainsFormat appropriée (par exemple ContainsText) pour déterminer si le Presse-papiers contient des données dans ce format, puis appelez la méthode GetFormat appropriée (par exemple GetText) pour récupérer les données si le Presse-papiers en contient. Pour spécifier le format de ces opérations, appelez plutôt les méthodes ContainsData et GetData.

Remarque :

Toutes les applications Windows partagent le Presse-papiers système ; les données sont par conséquent sujettes à modification lorsque vous passez d'une application à une autre.

Un objet doit être sérialisable pour pouvoir être placé dans le Presse-papiers. Si vous passez un objet qui n'est pas sérialisable à une méthode du Presse-papiers, celle-ci échoue sans lever d'exception. Pour plus d'informations sur la sérialisation, consultez Sérialisation. Si votre application cible requiert un format de données très spécifique, les en-têtes ajoutés aux données dans le processus de sérialisation peuvent empêcher l'application de reconnaître vos données. Pour conserver votre format de données, ajoutez vos données sous forme de tableau Byte dans MemoryStream et passez MemoryStream à la méthode SetData.

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

Des considérations particulières sont à prendre en compte lors de l'utilisation du format de métafichier avec le Presse-papiers. En raison d'une limitation dans l'implémentation actuelle de la classe DataObject, le format de métafichier utilisé par le .NET Framework peut ne pas être reconnu par des applications qui utilisent un format de métafichier plus ancien. Dans ce cas, vous devez interagir avec les interfaces de programmation d'applications (API) de Presse-papiers Win32. Pour plus d'informations, consultez l'article 323530, « Metafiles on Clipboard Are Not Visible to All Applications », dans la Base de connaissances Microsoft à l'adresse http://www.microsoft.com/france/support.

Remarque sur la plateforme Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows CE :

Dans Windows CE, un flux de mémoire collé à partir du Presse-papiers peut avoir une taille légèrement supérieure à celle du flux de mémoire copié vers le Presse-papiers, car des octets supplémentaires peuvent être ajoutés à la fin du flux de mémoire d'origine. Pour récupérer correctement le flux de mémoire, faites précéder l'objet de sa taille pour déterminer comment le recevoir ou copiez DataObject vers le Presse-papiers contenant le flux de mémoire et une valeur de chaîne de sa taille.

L'exemple de code suivant illustre le placement de données dans le Presse-papiers système et leur récupération du Presse-papiers système à l'aide des méthodes Clipboard. Ce code suppose que button1, button2, textBox1 et textBox2 ont été créés et placés dans le formulaire.

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

La méthode button2_Click appelle GetDataObject pour récupérer des données du Presse-papiers système. Le code utilise IDataObject et DataFormats pour extraire les données retournées et afficher les donné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 != "")
       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.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.";
    }
 }



System.Object
  System.Windows.Forms.Clipboard
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
© 2013 Microsoft. Tous droits réservés.