Partager via


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
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface IDataObject
    interface IDataObject.Interface
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface IDataObject.Interface
    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 y est stocké. Ensuite, il vérifie si des données du type approprié existent dans le DataObject. Le résultat s’affiche dans une zone de texte. Ce code nécessite que l’a textBox1 été créé.

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 texte. 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. Le format de données est automatiquement converti du texte en chaîne. Ce code nécessite que l’a textBox1 été créé.

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

Un DataObject est généralement utilisé avec et dans les Clipboard opérations 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 par son format associé. É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 plusieurs DataObject formats. Consultez DataFormats pour connaître 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, passez les données au constructeur ou appelez SetData. Vous pouvez ajouter des données dans plusieurs formats au même DataObject. Si vous souhaitez que les données que vous ajoutez soient récupérées uniquement dans leur format natif, 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 dans n’importe quel format compatible avec GetData. Par exemple, le texte peut être converti en Unicode. Pour récupérer des données au format dans lequel elles ont été stockées, appelez GetData avec le autoConvert paramètre défini sur false.

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

Dans .NET Framework 2.0, 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 au DataObject, utilisez la méthode Format appropriéeSet, telle que SetText. Pour récupérer des données d’un format particulier à partir de , DataObjectappelez d’abord la méthode Format appropriée Contains (telle que ContainsText) pour déterminer si le DataObject contient des données dans ce format, puis appelez la méthode Format appropriée Get (telle que GetText) pour récupérer les données si le DataObject contient.

Notes

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 DataObject classe, 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. Dans ce cas, vous devez interagir avec les interfaces de programmation d’applications (API) du Presse-papiers Win32.

Un objet doit être sérialisable pour qu’il soit placé dans le Presse-papiers. Pour plus d’informations sur la sérialisation, consultez System.Runtime.Serialization . Si votre application cible nécessite 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 en tant que Byte tableau à un MemoryStream et passez le MemoryStream à la SetData méthode .

Constructeurs

DataObject()

Initialise une nouvelle instance de la classe DataObject.

DataObject(Object)

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

DataObject(String, Object)

Initialise une nouvelle instance de la classe DataObject et ajoute l'objet spécifié dans le format indiqué.

Méthodes

ContainsAudio()

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

ContainsFileDropList()

Indique si l'objet de données contient des données au format FileDrop ou qui peuvent être converties dans ce format.

ContainsImage()

Indique si l'objet de données contient des données au format Bitmap ou qui peuvent être converties dans ce format.

ContainsText()

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

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.

Equals(Object)

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

(Hérité de Object)
GetAudioStream()

Récupère un flux de données audio de l'objet de données.

GetData(String)

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

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é.

GetData(Type)

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

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é.

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é.

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é.

GetFileDropList()

Récupérer une collection de noms de fichiers de l'objet de données.

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.

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.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetImage()

Récupère une image de l'objet de données.

GetText()

Récupère des données textuelles de l'objet de données dans le format UnicodeText.

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.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(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.

SetAudio(Stream)

Ajoute Stream à l'objet de données dans le format WaveAudio.

SetData(Object)

Ajoute l'objet spécifié au DataObject en utilisant le type d'objet comme format de données.

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.

SetData(String, Object)

Ajoute l'objet spécifié au DataObject à l'aide du format spécifié.

SetData(Type, Object)

Ajoute l'objet spécifié au DataObject en utilisant le type spécifié comme format.

SetFileDropList(StringCollection)

Ajoute une collection de noms de fichiers à l'objet de données dans le format FileDrop.

SetImage(Image)

Ajoute Image à l'objet de données dans le format Bitmap.

SetText(String)

Ajoute des données textuelles à l'objet de données dans le format UnicodeText.

SetText(String, TextDataFormat)

Ajoute des données textuelles à l'objet de données dans le format indiqué par la valeur TextDataFormat spécifiée.

ToString()

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

(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. 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.

IDataObject.DUnadvise(Int32)

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

IDataObject.EnumDAdvise(IEnumSTATDATA)

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

IDataObject.EnumFormatEtc(DATADIR)

Crée un objet pour l'énumération des structures FORMATETC 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 FORMATETC standard qui équivaut logiquement à une structure plus complexe. 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.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Obtient des données à partir d'un objet de données source. 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. L'appelant est ensuite chargé de libérer la structure STGMEDIUM.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Obtient des données à partir d'un objet de données source. 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é.

IDataObject.QueryGetData(FORMATETC)

Détermine si l'objet de données est capable de rendre les données décrites dans la structure FORMATETC. 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.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Transfère des données vers 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