DataObject Classe

Définition

Implémente un mécanisme de transfert de données de base.Implements a basic data transfer mechanism.

public ref class DataObject : System::Runtime::InteropServices::ComTypes::IDataObject, System::Windows::Forms::IDataObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class DataObject : System.Runtime.InteropServices.ComTypes.IDataObject, System.Windows.Forms.IDataObject
type DataObject = class
    interface IDataObject
    interface IDataObject
Public Class DataObject
Implements IDataObject, IDataObject
Héritage
DataObject
Attributs
Implémente

Exemples

L’exemple de code suivant ajoute des données dans un DataObject.The following code example adds data in a DataObject. Tout d’abord, un nouveau DataObject est créé et un composant y est stocké.First, a new DataObject is created and a component is stored in it. Il vérifie ensuite s’il existe des données dans le type approprié dans le DataObject.Then, it checks to see if data in the appropriate type exists in the DataObject. Le résultat s’affiche dans une zone de texte.The result is displayed in a text box. Ce code requiert la création de textBox1.This code requires that textBox1 has been created.

private:
   void AddMyData3()
   {
      // Creates a component to store in the data object.
      Component^ myComponent = gcnew Component;
      
      // Creates a new data object.
      DataObject^ myDataObject = gcnew DataObject;
      
      // Adds the component to the DataObject.
      myDataObject->SetData( myComponent );
      
      // Prints whether data of the specified type is in the DataObject.
      Type^ myType = myComponent->GetType();
      if ( myDataObject->GetDataPresent( myType ) )
      {
         textBox1->Text = String::Concat( "Data of type ", myType,
            " is present in the DataObject" );
      }
      else
      {
         textBox1->Text = String::Concat( "Data of type ", myType,
            " is not present in the DataObject" );
      }
   }
private void AddMyData3() {
    // Creates a component to store in the data object.
    Component myComponent = new Component();
 
    // Creates a new data object.
    DataObject myDataObject = new DataObject();
 
    // Adds the component to the DataObject.
    myDataObject.SetData(myComponent);
 
    // Prints whether data of the specified type is in the DataObject.
    Type myType = myComponent.GetType();
    if(myDataObject.GetDataPresent(myType))
       textBox1.Text = "Data of type " + myType.ToString() + 
       " is present in the DataObject";
    else
       textBox1.Text = "Data of type " + myType.ToString() +
       " is not present in the DataObject";
 }
Private Sub AddMyData3()
    ' Creates a component to store in the data object.
    Dim myComponent As New Component()
    
    ' Creates a new data object.
    Dim myDataObject As New DataObject()
    
    ' Adds the component to the DataObject.
    myDataObject.SetData(myComponent)
    
    ' Prints whether data of the specified type is in the DataObject.
    Dim myType As Type = myComponent.GetType()
    If myDataObject.GetDataPresent(myType) Then
        textBox1.Text = "Data of type " & myType.ToString() & _
            " is present in the DataObject"
    Else
        textBox1.Text = "Data of type " & myType.ToString() & _
            " is not present in the DataObject"
    End If
End Sub

L’exemple suivant récupère les données stockées dans un DataObject.The next example retrieves the data stored in a DataObject. Tout d’abord, une nouvelle DataObject est créée avec des données texte.First, a new DataObject is created with text data. Ensuite, les données sont récupérées, en spécifiant leur format sous forme de chaîne et affichées dans une zone de texte.Then, the data is retrieved, specifying its format as a string, and displayed in a text box. Le format de données est automatiquement converti du texte en chaîne.The data format is automatically converted from text to string. Ce code requiert la création de textBox1.This code requires that textBox1 has been created.

void GetMyData2()
{
   // Creates a new data object using a string and the text format.
   DataObject^ myDataObject = gcnew DataObject( DataFormats::Text,"Text to Store" );
   
   // Prints the string in a text box.
   textBox1->Text = myDataObject->GetData( DataFormats::Text )->ToString();
}
private void GetMyData2() {
    // Creates a new data object using a string and the text format.
    DataObject myDataObject = new DataObject(DataFormats.Text, "Text to Store");
 
    // Prints the string in a text box.
    textBox1.Text = myDataObject.GetData(DataFormats.Text).ToString();
 }
Private Sub GetMyData2()
    ' Creates a new data object using a string and the text format.
    Dim myDataObject As New DataObject(DataFormats.Text, "Text to Store")
    
    ' Prints the string in a text box.
    textBox1.Text = myDataObject.GetData(DataFormats.Text).ToString()
End Sub

Remarques

DataObject implémente l’interface IDataObject, dont les méthodes fournissent un mécanisme indépendant du format pour le transfert de données.DataObject implements the IDataObject interface, whose methods provide a format-independent mechanism for data transfer.

Une DataObject est généralement utilisée avec le Clipboard et dans les opérations de glisser-déplacer.A DataObject is typically used with the Clipboard and in drag-and-drop operations. La classe DataObject fournit l’implémentation recommandée de l’interface IDataObject.The DataObject class provides the recommended implementation of the IDataObject interface. Il est recommandé d’utiliser la classe DataObject plutôt que d’implémenter IDataObject vous-même.It is suggested that you use the DataObject class rather than implementing IDataObject yourself.

Plusieurs éléments de données dans différents formats peuvent être stockés dans un DataObject.Multiple pieces of data in different formats can be stored in a DataObject. Les données sont extraites d’un DataObject par son format associé.Data is retrieved from a DataObject by its associated format. Étant donné que l’application cible n’est peut-être pas connue, vous pouvez augmenter la probabilité que les données soient au format approprié pour une application en plaçant les données dans un DataObject dans plusieurs formats.Because the target application might not be known, you can increase the likelihood that the data will be in the appropriate format for an application by placing the data in a DataObject in multiple formats. Consultez DataFormats pour obtenir les formats prédéfinis.See DataFormats for the predefined formats. Vous pouvez implémenter votre propre format en créant une instance de la classe DataFormats.Format.You can implement your own format by creating an instance of the DataFormats.Format class.

Pour stocker des données dans un DataObject, transmettez les données au constructeur ou appelez SetData.To store data in a DataObject, pass the data to the constructor or call SetData. Vous pouvez ajouter des données dans plusieurs formats au même DataObject.You can add data in multiple formats to the same DataObject. Si vous souhaitez que les données que vous ajoutez soient récupérées dans leur format natif uniquement, appelez SetData(String, Boolean, Object) avec le paramètre autoConvert défini sur false.If you want the data you add to be retrieved in its native format only, call SetData(String, Boolean, Object) with the autoConvert parameter set to false.

Les données peuvent être récupérées à partir d’un DataObject dans n’importe quel format compatible avec GetData.Data can be retrieved from a DataObject in any format which is compatible with GetData. Par exemple, le texte peut être converti au format Unicode.For example, text can be converted to Unicode. Pour récupérer des données au format dans lequel elles ont été stockées, appelez GetData avec le paramètre autoConvert défini sur false.To retrieve data in the format in which it was stored, call GetData with the autoConvert parameter set to false.

Pour déterminer les formats dans lesquels les données sont stockées, appelez GetFormats.To determine what formats the data is stored in, call GetFormats. Pour déterminer si un format est disponible, appelez GetDataPresent avec le format souhaité.To determine if a format is available, call GetDataPresent with the desired format.

Dans .NET Framework 2.0.NET Framework 2.0, la classe DataObject fournit des méthodes supplémentaires qui facilitent l’utilisation des données dans les formats courants.In .NET Framework 2.0.NET Framework 2.0, the DataObject class provides additional methods that make it easier to work with data in common formats. Pour ajouter des données d’un format particulier au DataObject, utilisez la méthode de mise en forme Setappropriée, telle que SetText.To add data of a particular format to the DataObject, use the appropriate SetFormat method, such as SetText. Pour récupérer les données d’un format particulier à partir de la DataObject, appelez d’abord la méthode de format d' Containsappropriée (par exemple ContainsText) pour déterminer si l' DataObject contient des données dans ce format, puis appelez la méthode de mise en forme Getappropriée (telle que GetText) pour récupérer les données si le DataObject le contient.To retrieve data of a particular format from the DataObject, first call the appropriate ContainsFormat method (such as ContainsText) to determine whether the DataObject contains data in that format, then call the appropriate GetFormat method (such as GetText) to retrieve the data if the DataObject contains it.

Notes

Des considérations spéciales peuvent être nécessaires lors de l’utilisation du format de métafichier avec le presse-papiers.Special considerations may be necessary when using the metafile format with the Clipboard. En raison d’une limitation de l’implémentation actuelle de la classe DataObject, le format de métafichier utilisé par le .NET Framework peut ne pas être reconnu par les applications qui utilisent un format de métafichier plus ancien.Due to a limitation in the current implementation of the DataObject class, the metafile format used by the .NET Framework may not be recognized by applications that use an older metafile format. Dans ce cas, vous devez interagir avec les interfaces de programmation d’application (API) du presse-papiers Win32.In this case, you must interoperate with the Win32 Clipboard application programming interfaces (APIs).

Un objet doit être sérialisable pour être placé dans le presse-papiers.An object must be serializable for it to be put on the Clipboard. Pour plus d’informations sur la sérialisation, consultez System.Runtime.Serialization.See System.Runtime.Serialization for more information on serialization. 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.If your target application requires a very specific data format, the headers added to the data in the serialization process may prevent the application from recognizing your data. Pour conserver votre format de données, ajoutez vos données en tant que tableau de Byte à un MemoryStream et transmettez le MemoryStream à la méthode SetData.To preserve your data format, add your data as a Byte array to a MemoryStream and pass the MemoryStream to the SetData method.

Constructeurs

DataObject()

Initialise une nouvelle instance de la classe DataObject.Initializes a new instance of the DataObject class.

DataObject(Object)

Initialise une nouvelle instance de la classe DataObject et lui ajoute l'objet spécifié.Initializes a new instance of the DataObject class and adds the specified object to it.

DataObject(String, Object)

Initialise une nouvelle instance de la classe DataObject et ajoute l'objet spécifié dans le format indiqué.Initializes a new instance of the DataObject class and adds the specified object in the specified format.

Méthodes

ContainsAudio()

Indique si l'objet de données contient des données au format WaveAudio.Indicates whether the data object contains data in the WaveAudio format.

ContainsFileDropList()

Indique si l'objet de données contient des données au format FileDrop ou qui peuvent être converties dans ce format.Indicates whether the data object contains data that is in the FileDrop format or can be converted to that format.

ContainsImage()

Indique si l'objet de données contient des données au format Bitmap ou qui peuvent être converties dans ce format.Indicates whether the data object contains data that is in the Bitmap format or can be converted to that format.

ContainsText()

Indique si l'objet de données contient des données au format UnicodeText.Indicates whether the data object contains data in the UnicodeText format.

ContainsText(TextDataFormat)

Indique si l'objet de données contient des données textuelles dans le format indiqué par la valeur TextDataFormat spécifiée.Indicates whether the data object contains text data in the format indicated by the specified TextDataFormat value.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetAudioStream()

Récupère un flux de données audio de l'objet de données.Retrieves an audio stream from the data object.

GetData(String)

Retourne les données associées au format de données spécifié.Returns the data associated with the specified data format.

GetData(String, Boolean)

Retourne les données associées au format de données spécifié, grâce à un paramètre de conversion automatique permettant de déterminer si les données doivent être converties dans le format spécifié.Returns the data associated with the specified data format, using an automated conversion parameter to determine whether to convert the data to the format.

GetData(Type)

Retourne les données associées au format correspondant au type classe spécifié.Returns the data associated with the specified class type format.

GetDataPresent(String)

Détermine si les données stockées dans ce DataObject sont associées au format spécifié ou si elles peuvent être converties dans le format spécifié.Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

GetDataPresent(String, Boolean)

Détermine si ce DataObject contient des données au format spécifié, ou qui peuvent éventuellement être converties dans le format spécifié.Determines whether this DataObject contains data in the specified format or, optionally, contains data that can be converted to the specified format.

GetDataPresent(Type)

Détermine si les données stockées dans ce DataObject sont associées au format spécifié ou si elles peuvent être converties dans le format spécifié.Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

GetFileDropList()

Récupérer une collection de noms de fichiers de l'objet de données.Retrieves a collection of file names from the data object.

GetFormats()

Retourne la liste de tous les formats auxquels les données stockées dans ce DataObject sont associées ou dans lesquels ces données peuvent être converties.Returns a list of all formats that data stored in this DataObject is associated with or can be converted to.

GetFormats(Boolean)

Retourne la liste de tous les formats auxquels les données stockées dans ce DataObject sont associées ou dans lesquels ces données peuvent être converties, grâce à un paramètre de conversion automatique permettant de déterminer si seuls les formats natifs ou si l'ensemble des formats dans lesquels les données peuvent être converties doivent être récupérés.Returns a list of all formats that data stored in this DataObject is associated with or can be converted to, using an automatic conversion parameter to determine whether to retrieve only native data formats or all formats that the data can be converted to.

GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetImage()

Récupère une image de l'objet de données.Retrieves an image from the data object.

GetText()

Récupère des données textuelles de l'objet de données dans le format UnicodeText.Retrieves text data from the data object in the UnicodeText format.

GetText(TextDataFormat)

Récupère des données textuelles de l'objet de données dans le format indiqué par la valeur TextDataFormat spécifiée.Retrieves text data from the data object in the format indicated by the specified TextDataFormat value.

GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
SetAudio(Byte[])

Ajoute un tableau Byte à l'objet de données dans le format WaveAudio après l'avoir converti en Stream.Adds a Byte array to the data object in the WaveAudio format after converting it to a Stream.

SetAudio(Stream)

Ajoute Stream à l'objet de données dans le format WaveAudio.Adds a Stream to the data object in the WaveAudio format.

SetData(Object)

Ajoute l'objet spécifié au DataObject en utilisant le type d'objet comme format de données.Adds the specified object to the DataObject using the object type as the data format.

SetData(String, Boolean, Object)

Ajoute l'objet spécifié au DataObject en utilisant le format spécifié et en indiquant si les données peuvent être converties dans un autre format.Adds the specified object to the DataObject using the specified format and indicating whether the data can be converted to another format.

SetData(String, Object)

Ajoute l'objet spécifié au DataObject à l'aide du format spécifié.Adds the specified object to the DataObject using the specified format.

SetData(Type, Object)

Ajoute l'objet spécifié au DataObject en utilisant le type spécifié comme format.Adds the specified object to the DataObject using the specified type as the format.

SetFileDropList(StringCollection)

Ajoute une collection de noms de fichiers à l'objet de données dans le format FileDrop.Adds a collection of file names to the data object in the FileDrop format.

SetImage(Image)

Ajoute Image à l'objet de données dans le format Bitmap.Adds an Image to the data object in the Bitmap format.

SetText(String)

Ajoute des données textuelles à l'objet de données dans le format UnicodeText.Adds text data to the data object in the UnicodeText format.

SetText(String, TextDataFormat)

Ajoute des données textuelles à l'objet de données dans le format indiqué par la valeur TextDataFormat spécifiée.Adds text data to the data object in the format indicated by the specified TextDataFormat value.

ToString()

Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32)

Crée une connexion entre un objet de données et un récepteur de notifications.Creates a connection between a data object and an advisory sink. Cette méthode est appelée par un objet qui prend en charge un récepteur de notifications et elle lui permet d'être averti des modifications apportées aux données de l'objet.This method is called by an object that supports an advisory sink and enables the advisory sink to be notified of changes in the object's data.

IDataObject.DUnadvise(Int32)

Détruit une connexion de notifications qui avait été établie précédemment.Destroys a notification connection that had been previously established.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Crée un objet qui peut être utilisé pour énumérer les connexions de notifications actuelles.Creates an object that can be used to enumerate the current advisory connections.

IDataObject.EnumFormatEtc(DATADIR)

Crée un objet pour l'énumération des structures FORMATETC d'un objet de données.Creates an object for enumerating the FORMATETC structures for a data object. Ces structures sont utilisées dans les appels à GetData(FORMATETC, STGMEDIUM) ou à SetData(FORMATETC, STGMEDIUM, Boolean).These structures are used in calls to GetData(FORMATETC, STGMEDIUM) or SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Fournit une structure FORMATETC standard qui équivaut logiquement à une structure plus complexe.Provides a standard FORMATETC structure that is logically equivalent to a more complex structure. Utilisez cette méthode pour déterminer si deux structures FORMATETC différentes retourneraient les mêmes données, rendant ainsi superflu le rendu en double.Use this method to determine whether two different FORMATETC structures would return the same data, removing the need for duplicate rendering.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Obtient des données à partir d'un objet de données source.Obtains data from a source data object. La méthode GetData(FORMATETC, STGMEDIUM) qui est appelée par un consommateur de données rend les données décrites dans la structure FORMATETC spécifiée et les transfère par l'intermédiaire de la structure STGMEDIUM spécifiée.The GetData(FORMATETC, STGMEDIUM) method, which is called by a data consumer, renders the data described in the specified FORMATETC structure and transfers it through the specified STGMEDIUM structure. L'appelant est ensuite chargé de libérer la structure STGMEDIUM.The caller then assumes responsibility for releasing the STGMEDIUM structure.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Obtient des données à partir d'un objet de données source.Obtains data from a source data object. Cette méthode, qui est appelée par un consommateur de données, diffère de la méthode GetData(FORMATETC, STGMEDIUM) en ce sens que l'appelant doit allouer et libérer le support de stockage spécifié.This method, which is called by a data consumer, differs from the GetData(FORMATETC, STGMEDIUM) method in that the caller must allocate and free the specified storage medium.

IDataObject.QueryGetData(FORMATETC)

Détermine si l'objet de données est capable de rendre les données décrites dans la structure FORMATETC.Determines whether the data object is capable of rendering the data described in the FORMATETC structure. Les objets qui tentent une opération de collage ou de déplacement peuvent appeler cette méthode avant d'appeler GetData(FORMATETC, STGMEDIUM) pour obtenir savoir si l'opération a des chances de réussir.Objects attempting a paste or drop operation can call this method before calling GetData(FORMATETC, STGMEDIUM) to get an indication of whether the operation may be successful.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Transfère des données vers l'objet qui implémente cette méthode.Transfers data to the object that implements this method. Cette méthode est appelée par un objet qui contient une source de données.This method is called by an object that contains a data source.

S’applique à

Voir aussi