DataObject Classe

Définition

Implémente un mécanisme de transfert de données de base.

public ref class DataObject : System::Windows::Forms::IDataObject
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.Windows.Forms.IDataObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class DataObject : System.Runtime.InteropServices.ComTypes.IDataObject, System.Windows.Forms.IDataObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface UnsafeNativeMethods.IOleDataObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface IDataObject
Public Class DataObject
Implements 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. Tout d’abord, un nouveau DataObject est créé et un composant est stocké dans celui-ci. Ensuite, il vérifie si les données du type approprié existent dans le DataObject. Le résultat est affiché dans une zone de texte. Ce code nécessite la textBox1 création.

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. Tout d’abord, un nouveau DataObject est créé avec des données de texte. Ensuite, les données sont récupérées, en spécifiant son format en tant que chaîne et affichées dans une zone de texte. Le format de données est automatiquement converti du texte en chaîne. Ce code nécessite la textBox1 création.

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, dont les méthodes fournissent un mécanisme indépendant du format pour le IDataObject transfert de données.

Un DataObject est généralement utilisé avec les Clipboard opérations de glisser-déplacer et de glisser-déplacer. La DataObject classe fournit l’implémentation recommandée de l’interface IDataObject . Il est suggéré d’utiliser la DataObject classe plutôt que de vous implémenter IDataObject vous-même.

Plusieurs éléments de données dans différents formats peuvent être stockés dans un DataObject. Les données sont récupérées à partir d’un DataObject format associé. Étant donné que l’application cible peut ne pas être connue, vous pouvez augmenter la probabilité que les données soient au format approprié pour une application en plaçant les données dans plusieurs DataObject formats. Consultez DataFormats les formats prédéfinis. Vous pouvez implémenter votre propre format en créant une instance de la DataFormats.Format classe.

Pour stocker des données dans un DataObject, transmettez les données au constructeur ou à l’appel SetData. Vous pouvez ajouter des données dans plusieurs formats au même DataObjectformat. Si vous souhaitez que les données que vous ajoutez soient récupérées dans son format natif uniquement, appelez SetData(String, Boolean, Object) avec le autoConvert paramètre défini sur false.

Les données peuvent être récupérées à partir d’un DataObject format compatible avec GetData. Par exemple, le texte peut être converti en Unicode. Pour récupérer des données au format dans lequel il a été stocké, appelez GetData avec le autoConvert paramètre défini sur false.

Pour déterminer quels formats les données sont stockées, appelez GetFormats. Pour déterminer si un format est disponible, appelez GetDataPresent avec le format souhaité.

La DataObject classe fournit des méthodes supplémentaires qui facilitent l’utilisation des données dans des formats courants. Pour ajouter des données d’un format particulier à l’élément DataObject, utilisez la méthode Format appropriéeSet, telle que SetText. Pour récupérer des données d’un format particulier à partir du DataObject, appelez d’abord la méthode Format appropriée Contains (par exempleContainsText) pour déterminer si les DataObject données contiennent dans ce format, puis appelez la méthode Format appropriée Get (par exempleGetText) pour récupérer les données si elles le DataObject contiennent.

Note

Des considérations particulières peuvent être nécessaires 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 l’infrastructure .NET peut ne pas être reconnu par les applications qui utilisent un format de métafichier plus ancien. Dans ce cas, vous devez interagir avec les interfaces de programmation d’applications Win32 Presse-papiers (API).

Un objet doit être sérialisable pour qu’il soit placé dans le Presse-papiers. Consultez System.Runtime.Serialization pour plus d’informations sur la sérialisation. Si votre application cible nécessite un format de données très spécifique, les en-têtes ajoutés aux données du 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 la forme d’un Byte tableau et MemoryStream transmettez-les MemoryStream à la SetData méthode.

Constructeurs

Nom Description
DataObject()

Initialise une nouvelle instance de la classe DataObject.

DataObject(Object)

Initialise une nouvelle instance de la DataObject classe et y ajoute l’objet spécifié.

DataObject(String, Object)

Initialise une nouvelle instance de la DataObject classe et ajoute l’objet spécifié au format spécifié.

Méthodes

Nom Description
ContainsAudio()

Indique si l’objet de données contient des données au WaveAudio format.

ContainsFileDropList()

Indique si l’objet de données contient des données au FileDrop format ou peut être converti dans ce format.

ContainsImage()

Indique si l’objet de données contient des données au Bitmap format ou peut être converti dans ce format.

ContainsText()

Indique si l’objet de données contient des données au UnicodeText format.

ContainsText(TextDataFormat)

Indique si l’objet de données contient des données de texte au format indiqué par la valeur spécifiée TextDataFormat .

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetAudioStream()

Récupère un flux audio à partir de l’objet de données.

GetData(String, Boolean)

Retourne les données associées au format de données spécifié, à l’aide d’un paramètre de conversion automatisé pour déterminer s’il faut convertir les données au format.

GetData(String)

Retourne les données associées au format de données spécifié.

GetData(Type)

Retourne les données associées au format de type de classe spécifié.

GetDataPresent(String, Boolean)

Détermine si cela DataObject contient des données au format spécifié ou, éventuellement, contient des données qui peuvent être converties au format spécifié.

GetDataPresent(String)

Détermine si les données stockées dans ce DataObject fichier sont associées ou peuvent être converties au format spécifié.

GetDataPresent(Type)

Détermine si les données stockées dans ce DataObject fichier sont associées ou peuvent être converties au format spécifié.

GetFileDropList()

Récupère une collection de noms de fichiers à partir de l’objet de données.

GetFormats()

Retourne une liste de tous les formats dans utilisant les données stockées dans ce DataObject format ou peuvent être convertis en.

GetFormats(Boolean)

Retourne une liste de tous les formats DataObject dans utilisant ou peut être converti en, à l’aide d’un paramètre de conversion automatique pour déterminer s’il faut récupérer uniquement les formats de données natifs ou tous les formats vers utilisant les données.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetImage()

Récupère une image à partir de l’objet de données.

GetText()

Récupère les données de texte de l’objet de données au UnicodeText format.

GetText(TextDataFormat)

Récupère les données de texte de l’objet de données au format indiqué par la valeur spécifiée TextDataFormat .

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

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

Ajoute un Byte tableau à l’objet de données au WaveAudio format après l’avoir converti en Stream.

SetAudio(Stream)

Ajoute un Stream objet de données au WaveAudio format.

SetData(Object)

Ajoute l’objet spécifié au type d’objet à l’aide DataObject du type d’objet comme format de données.

SetData(String, Boolean, Object)

Ajoute l’objet spécifié au DataObject format spécifié et indique si les données peuvent être converties dans un autre format.

SetData(String, Object)

Ajoute l’objet spécifié au DataObject format spécifié.

SetData(Type, Object)

Ajoute l’objet spécifié au DataObject type spécifié comme format.

SetFileDropList(StringCollection)

Ajoute une collection de noms de fichiers à l’objet de données au FileDrop format.

SetImage(Image)

Ajoute un Image objet de données au Bitmap format.

SetText(String, TextDataFormat)

Ajoute des données texte à l’objet de données au format indiqué par la valeur spécifiée TextDataFormat .

SetText(String)

Ajoute des données texte à l’objet de données au UnicodeText format.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Crée une connexion entre un objet de données et un récepteur consultatif. Cette méthode est appelée par un objet qui prend en charge un récepteur consultatif et permet au récepteur consultatif d’être informé des modifications apportées aux données de l’objet.

IDataObject.DUnadvise(Int32)

Détruit une connexion de notification qui avait été établie précédemment.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Crée un objet qui peut être utilisé pour énumérer les connexions de conseil actuelles.

IDataObject.EnumFormatEtc(DATADIR)

Crée un objet pour énumérer les FORMATETC structures d’un objet de données. Ces structures sont utilisées dans les appels à GetData(FORMATETC, STGMEDIUM) ou SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Fournit une structure standard FORMATETC qui équivaut logiquement à une structure plus complexe. Utilisez cette méthode pour déterminer si deux structures différentes FORMATETC retournent les mêmes données, en supprimant la nécessité d’un rendu en double.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Obtient des données à partir d’un objet de données source. La GetData(FORMATETC, STGMEDIUM) méthode, appelée par un consommateur de données, affiche les données décrites dans la structure spécifiée FORMATETC et les transfère via la structure spécifiée STGMEDIUM . L’appelant assume ensuite la responsabilité de libérer la STGMEDIUM structure.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Obtient des données à partir d’un objet de données source. Cette méthode, appelée par un consommateur de données, diffère de la GetData(FORMATETC, STGMEDIUM) méthode dans laquelle l’appelant doit allouer et libérer le support de stockage spécifié.

IDataObject.QueryGetData(FORMATETC)

Détermine si l’objet de données est capable de restituer les données décrites dans la FORMATETC structure. Les objets qui tentent d’effectuer une opération de collage ou de suppression peuvent appeler cette méthode avant d’appeler GetData(FORMATETC, STGMEDIUM) pour obtenir une indication indiquant si l’opération peut réussir.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Transfère les données à l’objet qui implémente cette méthode. Cette méthode est appelée par un objet qui contient une source de données.

S’applique à

Voir aussi