DataObject Klass

Definition

Implementerar en grundläggande mekanism för dataöverföring.

public ref class DataObject : System::Windows::Forms::IDataObject
public ref class DataObject : System::Runtime::InteropServices::ComTypes::IDataObject, System::Windows::Forms::IDataObject
public ref class DataObject : System::Runtime::InteropServices::ComTypes::IDataObject, System::Windows::Forms::ITypedDataObject
[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)]
public class DataObject : System.Runtime.InteropServices.ComTypes.IDataObject, System.Windows.Forms.ITypedDataObject
[<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 ITypedDataObject
    interface IDataObject
    interface IDataObject.Interface
    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
Public Class DataObject
Implements IDataObject, ITypedDataObject
Arv
DataObject
Attribut
Implementeringar

Exempel

Följande kodexempel lägger till data i en DataObject. Först skapas en ny DataObject och en komponent lagras i den. Sedan kontrollerar den om data i lämplig typ finns i DataObject. Resultatet visas i en textruta. Den här koden kräver att den textBox1 har skapats.

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

I nästa exempel hämtas data som lagras i en DataObject. Först skapas en ny DataObject med textdata. Sedan hämtas data, anger dess format som en sträng och visas i en textruta. Dataformatet konverteras automatiskt från text till sträng. Den här koden kräver att den textBox1 har skapats.

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

Kommentarer

DataObject implementerar IDataObject gränssnittet, vars metoder tillhandahåller en formatoberoende mekanism för dataöverföring.

A DataObject används vanligtvis med Clipboard och i dra och släpp-åtgärder. Klassen DataObject tillhandahåller den rekommenderade implementeringen av IDataObject gränssnittet. Vi föreslår att du använder DataObject klassen i stället för att implementera IDataObject dig själv.

Flera datadelar i olika format kan lagras i en DataObject. Data hämtas från en DataObject med dess associerade format. Eftersom målprogrammet kanske inte är känt kan du öka sannolikheten för att data kommer att vara i rätt format för ett program genom att placera data i flera DataObject format. Se DataFormats för de fördefinierade formaten. Du kan implementera ditt eget format genom att skapa en instans av DataFormats.Format klassen.

Om du vill lagra data i en DataObjectskickar du data till konstruktorn eller anropar SetData. Du kan lägga till data i flera format till samma DataObject. Om du vill att de data som du lägger till endast ska hämtas i dess interna format anropar du SetData(String, Boolean, Object) med parametern autoConvert inställd på false.

Data kan hämtas från en DataObject i valfritt format som är kompatibelt med GetData. Text kan till exempel konverteras till Unicode. Om du vill hämta data i det format som den lagrades i anropar du GetData med parametern autoConvert inställd på false.

Om du vill ta reda på vilka format data lagras i anropar du GetFormats. För att avgöra om ett format är tillgängligt anropar du GetDataPresent med önskat format.

Klassen DataObject innehåller ytterligare metoder som gör det enklare att arbeta med data i vanliga format. Om du vill lägga till data i ett visst format i DataObjectanvänder du lämplig Setformatmetod , till exempel SetText. Om du vill hämta data med ett visst format från DataObjectanropar du först lämplig ContainsFormat-metod (till exempel ContainsText) för att avgöra om DataObject innehåller data i det formatet och anropar sedan lämplig Getformatmetod (till exempel GetText) för att hämta data om innehåller DataObject dem.

Note

Särskilda överväganden kan vara nödvändiga när du använder metafilformatet med Urklipp. På grund av en begränsning i den aktuella implementeringen av klassen DataObject kanske metafilformatet som används av .NET Framework inte identifieras av program som använder ett äldre metafilformat. I det här fallet måste du samverka med Api:erna (Win32 Clipboard Application Programming Interfaces).

Ett objekt måste vara serialiserbart för att det ska kunna placeras i Urklipp. Mer System.Runtime.Serialization information om serialisering finns i. Om målprogrammet kräver ett mycket specifikt dataformat kan rubrikerna som läggs till i data i serialiseringsprocessen hindra programmet från att känna igen dina data. Om du vill bevara dataformatet lägger du till dina data som en Byte matris i en MemoryStream och skickar MemoryStream till SetData -metoden.

Konstruktorer

Name Description
DataObject()

Initierar en ny instans av DataObject klassen.

DataObject(Object)

Initierar en ny instans av DataObject klassen och lägger till det angivna objektet i den.

DataObject(String, Object)

Initierar en ny instans av DataObject klassen och lägger till det angivna objektet i det angivna formatet.

Metoder

Name Description
ContainsAudio()

Anger om dataobjektet innehåller data i WaveAudio formatet.

ContainsFileDropList()

Anger om dataobjektet innehåller data som är i FileDrop formatet eller kan konverteras till det formatet.

ContainsImage()

Anger om dataobjektet innehåller data som är i Bitmap formatet eller kan konverteras till det formatet.

ContainsText()

Anger om dataobjektet innehåller data i UnicodeText formatet.

ContainsText(TextDataFormat)

Anger om dataobjektet innehåller textdata i det format som anges av det angivna TextDataFormat värdet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetAudioStream()

Hämtar en ljudström från dataobjektet.

GetData(String, Boolean)
Föråldrad.

Returnerar data som är associerade med det angivna dataformatet med hjälp av en automatiserad konverteringsparameter för att avgöra om data ska konverteras till formatet.

GetData(String)
Föråldrad.

Returnerar de data som är associerade med det angivna dataformatet.

GetData(Type)
Föråldrad.

Returnerar de data som är associerade med det angivna klasstypsformatet.

GetDataPresent(String, Boolean)

Avgör om detta DataObject innehåller data i det angivna formatet eller, om du vill, innehåller data som kan konverteras till det angivna formatet.

GetDataPresent(String)

Avgör om data som lagras i detta DataObject är associerade med, eller kan konverteras till, det angivna formatet.

GetDataPresent(Type)

Avgör om data som lagras i detta DataObject är associerade med, eller kan konverteras till, det angivna formatet.

GetFileDropList()

Hämtar en samling filnamn från dataobjektet.

GetFormats()

Returnerar en lista över alla format som data som lagras i detta DataObject är associerade med eller kan konverteras till.

GetFormats(Boolean)

Returnerar en lista över alla format som data som lagras i detta DataObject är associerade med eller kan konverteras till, med hjälp av en automatisk konverteringsparameter för att avgöra om endast inbyggda dataformat eller alla format som data kan konverteras till ska hämtas.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetImage()

Hämtar en bild från dataobjektet.

GetText()

Hämtar textdata från dataobjektet i UnicodeText formatet .

GetText(TextDataFormat)

Hämtar textdata från dataobjektet i det format som anges av det angivna TextDataFormat värdet.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
SetAudio(Byte[])

Lägger till en Byte matris i dataobjektet i WaveAudio formatet efter konverteringen till en Stream.

SetAudio(Stream)

Lägger till en Stream i dataobjektet i WaveAudio formatet.

SetData(Object)

Lägger till det angivna objektet i DataObject med objekttypen som dataformat.

SetData(String, Boolean, Object)

Lägger till det angivna objektet i DataObject det angivna formatet och anger om data kan konverteras till ett annat format.

SetData(String, Object)

Lägger till det angivna objektet i DataObject det angivna formatet.

SetData(Type, Object)

Lägger till det angivna objektet i DataObject med den angivna typen som format.

SetDataAsJson<T>(String, T)

Implementerar en grundläggande mekanism för dataöverföring.

SetDataAsJson<T>(T)

Implementerar en grundläggande mekanism för dataöverföring.

SetFileDropList(StringCollection)

Lägger till en samling filnamn i dataobjektet i FileDrop formatet.

SetImage(Image)

Lägger till ett Image i dataobjektet i Bitmap formatet.

SetText(String, TextDataFormat)

Lägger till textdata till dataobjektet i det format som anges av det angivna TextDataFormat värdet.

SetText(String)

Lägger till textdata i dataobjektet i UnicodeText formatet.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TryGetData<T>(String, Boolean, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(String, Func<TypeName,Type>, Boolean, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(String, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetDataCore<T>(String, Func<TypeName,Type>, Boolean, T)

Implementerar en grundläggande mekanism för dataöverföring.

Explicita gränssnittsimplementeringar

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

Skapar en anslutning mellan ett dataobjekt och en rådgivande mottagare. Den här metoden anropas av ett objekt som stöder en rådgivande mottagare och gör att den rådgivande mottagaren kan meddelas om ändringar i objektets data.

IDataObject.DUnadvise(Int32)

Förstör en meddelandeanslutning som tidigare upprättats.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Skapar ett objekt som kan användas för att räkna upp de aktuella rådgivande anslutningarna.

IDataObject.EnumFormatEtc(DATADIR)

Skapar ett objekt för att räkna upp strukturerna FORMATETC för ett dataobjekt. Dessa strukturer används i anrop till GetData(FORMATETC, STGMEDIUM) eller SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Tillhandahåller en standardstruktur FORMATETC som logiskt motsvarar en mer komplex struktur. Använd den här metoden för att avgöra om två olika FORMATETC strukturer skulle returnera samma data, vilket tar bort behovet av duplicerad återgivning.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Hämtar data från ett källdataobjekt. Metoden GetData(FORMATETC, STGMEDIUM) , som anropas av en datakonsument, återger de data som beskrivs i den angivna FORMATETC strukturen och överför dem via den angivna STGMEDIUM strukturen. Anroparen tar sedan ansvar för att STGMEDIUM frigöra strukturen.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Hämtar data från ett källdataobjekt. Den här metoden, som anropas av en datakonsument, skiljer sig från metoden GetData(FORMATETC, STGMEDIUM) eftersom anroparen måste allokera och frigöra det angivna lagringsmediet.

IDataObject.QueryGetData(FORMATETC)

Avgör om dataobjektet kan återge de data som beskrivs i FORMATETC strukturen. Objekt som försöker klistra in eller släppa kan anropa den här metoden innan de anropas GetData(FORMATETC, STGMEDIUM) för att få en indikation på om åtgärden kan lyckas.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Överför data till objektet som implementerar den här metoden. Den här metoden anropas av ett objekt som innehåller en datakälla.

Tilläggsmetoder

Name Description
TryGetData<T>(IDataObject, String, Boolean, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(IDataObject, String, Func<TypeName,Type>, Boolean, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(IDataObject, String, T)

Implementerar en grundläggande mekanism för dataöverföring.

TryGetData<T>(IDataObject, T)

Implementerar en grundläggande mekanism för dataöverföring.

Gäller för

Se även