DataObject Třída

Definice

Implementuje základní mechanismus přenosu dat.

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
Dědičnost
DataObject
Atributy
Implementuje

Příklady

Následující příklad kódu přidá data do DataObject. Nejprve se vytvoří nová DataObject komponenta a uloží se do ní. Pak zkontroluje, jestli v příslušném typu existují data v příslušném DataObjecttypu . Výsledek se zobrazí v textovém poli. Tento kód vyžaduje vytvoření textBox1 .

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

Další příklad načte data uložená v souboru DataObject. Nejprve se vytvoří nový DataObject s textovými daty. Potom se data načtou, určí jeho formát jako řetězec a zobrazí se v textovém poli. Formát dat se automaticky převede z textu na řetězec. Tento kód vyžaduje vytvoření textBox1 .

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

Poznámky

DataObject implementuje IDataObject rozhraní, jehož metody poskytují mechanismus nezávislý na formátu pro přenos dat.

A DataObject se obvykle používá s operacemi Clipboard přetažení a přetažením. Třída DataObject poskytuje doporučenou implementaci IDataObject rozhraní. Doporučujeme, abyste místo implementace DataObject sami použili IDataObject třídu.

Více částí dat v různých formátech lze uložit do .DataObject Data se načítají z přidruženého DataObject formátu. Vzhledem k tomu, že cílová aplikace nemusí být známá, můžete zvýšit pravděpodobnost, že data budou v příslušném formátu pro aplikaci umístěním dat do DataObject více formátů. Viz DataFormats předdefinované formáty. Vlastní formát můžete implementovat vytvořením instance DataFormats.Format třídy.

Chcete-li uložit data do , DataObjectpředejte data konstruktoru nebo volání SetData. Data můžete přidat ve více formátech do stejného DataObjectformátu . Pokud chcete, aby se data, která přidáte, načetla pouze v nativním formátu, volejte SetData(String, Boolean, Object) s parametrem nastaveným autoConvert na false.

Data lze načíst z libovolného DataObject formátu, který je kompatibilní s GetData. Například text lze převést na Unicode. Chcete-li načíst data ve formátu, ve kterém byla uložena, volání GetData s parametrem nastaveným autoConvert na false.

Chcete-li zjistit, ve jakých formátech jsou data uložena, zavolejte GetFormats. Pokud chcete zjistit, jestli je formát k dispozici, zavolejte GetDataPresent s požadovaným formátem.

Třída DataObject poskytuje další metody, které usnadňují práci s daty v běžných formátech. Chcete-li do souboru DataObjectpřidat data určitého formátu, použijte odpovídající Set metodu Format, například SetText. Chcete-li načíst data určitého formátu z DataObjectmetody , nejprve zavolejte příslušnou Contains metodu Format (napříkladContainsText) k určení, zda DataObject obsahuje data v tomto formátu, pak volejte příslušnou Get metodu Format (napříkladGetText) k načtení dat, pokud DataObject je obsahuje.

Note

Při použití formátu metasouboru se schránkou můžou být nezbytné zvláštní aspekty. Vzhledem k omezení v aktuální implementaci třídy DataObject nemusí být formát metasouboru používaný rozhraním .NET Framework rozpoznán aplikacemi, které používají starší formát metasouboru. V tomto případě musíte spolupracovat s programovacími rozhraními (API) schránky Win32.

Objekt musí být serializovatelný, aby byl umístěn do Schránky. Další System.Runtime.Serialization informace o serializaci. Pokud vaše cílová aplikace vyžaduje velmi specifický formát dat, mohou hlavičky přidané do dat v procesu serializace zabránit tomu, aby aplikace nerozpoznala vaše data. Chcete-li zachovat formát dat, přidejte data jako Byte pole do MemoryStream a předejte MemoryStream metodě SetData .

Konstruktory

Name Description
DataObject()

Inicializuje novou instanci DataObject třídy.

DataObject(Object)

Inicializuje novou instanci DataObject třídy a přidá do ní zadaný objekt.

DataObject(String, Object)

Inicializuje novou instanci DataObject třídy a přidá zadaný objekt v zadaném formátu.

Metody

Name Description
ContainsAudio()

Určuje, zda datový objekt obsahuje data ve WaveAudio formátu.

ContainsFileDropList()

Určuje, zda datový objekt obsahuje data, která jsou ve FileDrop formátu, nebo lze převést na tento formát.

ContainsImage()

Určuje, zda datový objekt obsahuje data, která jsou ve Bitmap formátu, nebo lze převést na tento formát.

ContainsText()

Určuje, zda datový objekt obsahuje data ve UnicodeText formátu.

ContainsText(TextDataFormat)

Určuje, zda datový objekt obsahuje textová data ve formátu určeném zadanou TextDataFormat hodnotou.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetAudioStream()

Načte zvukový stream z datového objektu.

GetData(String, Boolean)
Zastaralé.

Vrátí data přidružená k zadanému formátu dat pomocí parametru automatizovaného převodu k určení, zda se mají data převést do formátu.

GetData(String)
Zastaralé.

Vrátí data přidružená k zadanému formátu dat.

GetData(Type)
Zastaralé.

Vrátí data přidružená k zadanému formátu typu třídy.

GetDataPresent(String, Boolean)

Určuje, zda tato DataObject data obsahují data v zadaném formátu, nebo případně obsahují data, která lze převést na zadaný formát.

GetDataPresent(String)

Určuje, zda jsou data uložená v této DataObject souvislosti přidružena nebo lze převést na zadaný formát.

GetDataPresent(Type)

Určuje, zda jsou data uložená v této DataObject souvislosti přidružena nebo lze převést na zadaný formát.

GetFileDropList()

Načte kolekci názvů souborů z datového objektu.

GetFormats()

Vrátí seznam všech formátů, ke kterým jsou data uložená v tomto DataObject formátu přidružená nebo na které lze převést.

GetFormats(Boolean)

Vrátí seznam všechformátůch DataObject

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetImage()

Načte obrázek z datového objektu.

GetText()

Načte textová data z datového objektu UnicodeText ve formátu.

GetText(TextDataFormat)

Načte textová data z datového objektu ve formátu určeném zadanou TextDataFormat hodnotou.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
SetAudio(Byte[])

Byte Přidá pole do datového objektu WaveAudio ve formátu po převodu na .Stream

SetAudio(Stream)

Stream Přidá do datového objektu WaveAudio ve formátu.

SetData(Object)

Přidá zadaný objekt do DataObject objektu pomocí typu objektu jako datový formát.

SetData(String, Boolean, Object)

Přidá zadaný objekt do DataObject zadaného formátu a označuje, zda lze data převést do jiného formátu.

SetData(String, Object)

Přidá zadaný objekt do zadaného DataObject formátu.

SetData(Type, Object)

Přidá zadaný objekt do DataObject zadaného typu jako formát.

SetDataAsJson<T>(String, T)

Implementuje základní mechanismus přenosu dat.

SetDataAsJson<T>(T)

Implementuje základní mechanismus přenosu dat.

SetFileDropList(StringCollection)

Přidá kolekci názvů souborů do datového objektu FileDrop ve formátu.

SetImage(Image)

Image Přidá do datového objektu Bitmap ve formátu.

SetText(String, TextDataFormat)

Přidá textová data do datového objektu ve formátu určeném zadanou TextDataFormat hodnotou.

SetText(String)

Přidá textová data do datového objektu UnicodeText ve formátu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TryGetData<T>(String, Boolean, T)

Implementuje základní mechanismus přenosu dat.

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

Implementuje základní mechanismus přenosu dat.

TryGetData<T>(String, T)

Implementuje základní mechanismus přenosu dat.

TryGetData<T>(T)

Implementuje základní mechanismus přenosu dat.

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

Implementuje základní mechanismus přenosu dat.

Explicitní implementace rozhraní

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

Vytvoří propojení mezi datovým objektem a jímkou rady. Tato metoda je volána objektem, který podporuje jímku poradenství a umožňuje jímce rady dostávat oznámení o změnách v datech objektu.

IDataObject.DUnadvise(Int32)

Zničí připojení oznámení, které bylo dříve vytvořeno.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Vytvoří objekt, který lze použít k vytvoření výčtu aktuálních připojení poradce.

IDataObject.EnumFormatEtc(DATADIR)

Vytvoří objekt pro vytvoření výčtu FORMATETC struktur datového objektu. Tyto struktury se používají ve voláních nebo GetData(FORMATETC, STGMEDIUM)SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Poskytuje standardní FORMATETC strukturu, která je logicky ekvivalentní složitější struktuře. Tuto metodu použijte k určení, jestli by dvě různé FORMATETC struktury vrátily stejná data, a proto je potřeba duplikovat vykreslování.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Získá data ze zdrojového datového objektu. Metoda GetData(FORMATETC, STGMEDIUM) , která je volána příjemcem dat, vykresluje data popsaná v zadané FORMATETC struktuře a přenese je přes zadanou STGMEDIUM strukturu. Volající pak převezme odpovědnost za uvolnění STGMEDIUM struktury.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Získá data ze zdrojového datového objektu. Tato metoda, která je volána příjemcem dat, se liší od GetData(FORMATETC, STGMEDIUM) metody v tom, že volající musí přidělit a uvolnit zadané médium úložiště.

IDataObject.QueryGetData(FORMATETC)

Určuje, zda je datový objekt schopen vykreslovat data popsaná ve struktuře FORMATETC . Objekty, které se pokoušejí o operaci vložení nebo odstranění, mohou tuto metodu volat před voláním GetData(FORMATETC, STGMEDIUM) , aby získaly informace o tom, zda operace může být úspěšná.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Přenáší data do objektu, který implementuje tuto metodu. Tato metoda je volána objektem, který obsahuje zdroj dat.

Metody rozšíření

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

Implementuje základní mechanismus přenosu dat.

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

Implementuje základní mechanismus přenosu dat.

TryGetData<T>(IDataObject, String, T)

Implementuje základní mechanismus přenosu dat.

TryGetData<T>(IDataObject, T)

Implementuje základní mechanismus přenosu dat.

Platí pro

Viz také