DataObject Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Alapszintű adatátviteli mechanizmust implementál.
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
- Öröklődés
-
DataObject
- Attribútumok
- Megvalósítás
Példák
Az alábbi példakód adatokat ad hozzá egy DataObject. Először létrehoz egy újat DataObject , és egy összetevőt tárol benne. Ezután ellenőrzi, hogy a megfelelő típusú adatok léteznek-e a DataObject. Az eredmény egy szövegdobozban jelenik meg. Ehhez a kódhoz létre kell textBox1 hozni.
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
A következő példa egy DataObject. Először egy új DataObject jön létre szöveges adatokkal. Ezután lekéri az adatokat, megadva annak formátumát sztringként, és megjelenik egy szövegdobozban. Az adatformátumot a rendszer automatikusan szövegből sztringgé alakítja. Ehhez a kódhoz létre kell textBox1 hozni.
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
Megjegyzések
DataObject implementálja az IDataObject interfészt, amelynek módszerei formátumfüggetlen mechanizmust biztosítanak az adatátvitelhez.
Az A-t DataObject általában az húzással és húzással Clipboard végzett műveletekhez használják. Az DataObject osztály biztosítja a felület ajánlott implementálását IDataObject . Javasoljuk, hogy a saját megvalósítása helyett használja az DataObject osztályt IDataObject .
Több különböző formátumú adat tárolható egy DataObject. Az adatok lekérése a DataObject társított formátum alapján történik. Mivel a célalkalmazás nem ismert, növelheti annak valószínűségét, hogy az adatok az alkalmazás megfelelő formátumában lesznek, ha az adatokat DataObject több formátumban helyezi el. Lásd DataFormats az előre definiált formátumokat. Az osztály egy példányának DataFormats.Format létrehozásával saját formátumot valósíthat meg.
Az adatok egy DataObjecthelyen való tárolásához adja át az adatokat a konstruktornak vagy a hívásnak SetData. Az adatokat több formátumban is hozzáadhatja ugyanahhoz DataObject. Ha azt szeretné, hogy a hozzáadott adatok csak natív formátumban legyenek lekérve, hívja meg SetData(String, Boolean, Object) a paramétertautoConvert.false
Az adatok bármely olyan formátumban lekérhetők DataObject , amely kompatibilis a következővel GetData: . A szöveg például Unicode-ra konvertálható. Ha az adatokat a tárolási formátumában szeretné lekérni, hívja
Az adatok tárolási formátumának meghatározásához hívja meg a következőt GetFormats: . Annak megállapításához, hogy elérhető-e formátum, hívja GetDataPresent meg a kívánt formátumot.
Az DataObject osztály további módszereket biztosít, amelyek megkönnyítik az adatok közös formátumú kezelését. Ha egy adott formátumú adatot szeretne hozzáadni a DataObjectformátumhoz, használja a megfelelő SetFormátum metódust, például SetText. Ha egy adott formátum adatait szeretné lekérni az DataObjectadott formátumból, először hívja meg a megfelelő ContainsFormátum metódust (például ContainsText) annak megállapításához, hogy az DataObject adott formátumban lévő adatok szerepelnek-e, majd hívja meg a megfelelő GetFormátum metódust (például GetText) az adatok lekéréséhez, ha az DataObject tartalmazza azokat.
Note
A vágólapon a metafájl formátumának használatakor különleges szempontokra lehet szükség. A DataObject osztály jelenlegi implementációjának korlátozása miatt előfordulhat, hogy a .NET-keretrendszer által használt metafájl-formátumot nem ismerik fel a régebbi metafájlformátumot használó alkalmazások. Ebben az esetben a Win32 vágólap alkalmazásprogramozási felületeivel (API-kkal) kell együttműködnie.
Egy objektumnak szerializálhatónak kell lennie ahhoz, hogy a vágólapra kerüljön. További System.Runtime.Serialization információ a szerializálásról. Ha a célalkalmazás nagyon specifikus adatformátumot igényel, a szerializálási folyamat során az adatokhoz hozzáadott fejlécek megakadályozhatják, hogy az alkalmazás felismerje az adatokat. Az adatformátum megőrzéséhez adja hozzá az adatokat tömbként Byte , MemoryStream és adja át a MemoryStream metódusnak SetData .
Konstruktorok
| Name | Description |
|---|---|
| DataObject() |
Inicializálja a DataObject osztály új példányát. |
| DataObject(Object) |
Inicializálja az DataObject osztály új példányát, és hozzáadja a megadott objektumot. |
| DataObject(String, Object) |
Inicializálja az DataObject osztály új példányát, és hozzáadja a megadott objektumot a megadott formátumban. |
Metódusok
| Name | Description |
|---|---|
| ContainsAudio() |
Azt jelzi, hogy az adatobjektum tartalmaz-e adatformátumot WaveAudio . |
| ContainsFileDropList() |
Azt jelzi, hogy az adatobjektum tartalmaz-e olyan adatokat, amelyek a formátumot tartalmazzák, vagy átalakíthatók erre a FileDrop formátumra. |
| ContainsImage() |
Azt jelzi, hogy az adatobjektum tartalmaz-e olyan adatokat, amelyek a formátumot tartalmazzák, vagy átalakíthatók erre a Bitmap formátumra. |
| ContainsText() |
Azt jelzi, hogy az adatobjektum tartalmaz-e adatformátumot UnicodeText . |
| ContainsText(TextDataFormat) |
Azt jelzi, hogy az adatobjektum a megadott TextDataFormat érték által jelzett formátumban tartalmaz-e szöveges adatokat. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetAudioStream() |
Lekéri a hangstreamet az adatobjektumból. |
| GetData(String, Boolean) |
Elavult.
A megadott adatformátumhoz társított adatokat adja vissza egy automatizált konverziós paraméter használatával annak meghatározásához, hogy az adatokat formátummá konvertálja-e. |
| GetData(String) |
Elavult.
A megadott adatformátumhoz társított adatokat adja vissza. |
| GetData(Type) |
Elavult.
A megadott osztálytípus-formátumhoz társított adatokat adja vissza. |
| GetDataPresent(String, Boolean) |
Meghatározza, hogy ez DataObject a megadott formátumban tartalmaz-e adatokat, vagy opcionálisan a megadott formátumra konvertálható adatokat. |
| GetDataPresent(String) |
Meghatározza, hogy az ebben DataObject tárolt adatok társítva vagy konvertálhatók-e a megadott formátumhoz. |
| GetDataPresent(Type) |
Meghatározza, hogy az ebben DataObject tárolt adatok társítva vagy konvertálhatók-e a megadott formátumhoz. |
| GetFileDropList() |
Fájlnevek gyűjteményét kéri le az adatobjektumból. |
| GetFormats() |
Azoknak a formátumoknak a listáját adja vissza, amelyekhez az ebben DataObject tárolt adatok társítva vagy konvertálhatók. |
| GetFormats(Boolean) |
Visszaadja az összes olyan formátum listáját, amelybe az ebben DataObject tárolt adatok társítva vagy átalakíthatók egy automatikus konverziós paraméter használatával annak meghatározásához, hogy csak a natív adatformátumokat vagy az adatok konvertálható összes formátumát szeretné-e lekérni. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetImage() |
Kép lekérése az adatobjektumból. |
| GetText() |
Szöveges adatokat kér le az adatobjektumból a UnicodeText formátumban. |
| GetText(TextDataFormat) |
A megadott TextDataFormat érték által jelzett formátumban kéri le a szöveges adatokat az adatobjektumból. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| SetAudio(Byte[]) |
Tömböt ad Byte hozzá az adatobjektumhoz a WaveAudio formátumba való Streamkonvertálás után. |
| SetAudio(Stream) | |
| SetData(Object) |
A megadott objektumot DataObject adatformátumként adja hozzá az objektumtípus használatával. |
| SetData(String, Boolean, Object) |
Hozzáadja a megadott objektumot a DataObject megadott formátumhoz, és jelzi, hogy az adatok átalakíthatók-e másik formátumba. |
| SetData(String, Object) |
Hozzáadja a megadott objektumot a DataObject megadott formátumhoz. |
| SetData(Type, Object) |
A megadott objektumot DataObject a megadott típussal adja hozzá formátumként. |
| SetDataAsJson<T>(String, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| SetDataAsJson<T>(T) |
Alapszintű adatátviteli mechanizmust implementál. |
| SetFileDropList(StringCollection) |
Fájlnévgyűjteményt ad hozzá az adatobjektumhoz a FileDrop formátumban. |
| SetImage(Image) | |
| SetText(String, TextDataFormat) |
Szöveges adatokat ad hozzá az adatobjektumhoz a megadott TextDataFormat érték által jelzett formátumban. |
| SetText(String) |
Szöveges adatokat ad hozzá az adatobjektumhoz a UnicodeText formátumban. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| TryGetData<T>(String, Boolean, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(String, Func<TypeName,Type>, Boolean, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(String, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetDataCore<T>(String, Func<TypeName,Type>, Boolean, T) |
Alapszintű adatátviteli mechanizmust implementál. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) |
Kapcsolatot hoz létre egy adatobjektum és egy tanácsadó fogadó között. Ezt a metódust egy olyan objektum hívja meg, amely támogatja a tanácsadó fogadót, és lehetővé teszi, hogy a tanácsadó fogadó értesüljön az objektum adatainak változásairól. |
| IDataObject.DUnadvise(Int32) |
Megsemmisít egy korábban létrehozott értesítési kapcsolatot. |
| IDataObject.EnumDAdvise(IEnumSTATDATA) |
Létrehoz egy objektumot, amely az aktuális tanácsadói kapcsolatok számbavételére használható. |
| IDataObject.EnumFormatEtc(DATADIR) |
Létrehoz egy objektumot egy adatobjektum struktúráinak FORMATETC számbavételéhez. Ezeket a struktúrákat a rendszer a hívásban GetData(FORMATETC, STGMEDIUM)SetData(FORMATETC, STGMEDIUM, Boolean)vagy a . |
| IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) |
Olyan standard FORMATETC struktúrát biztosít, amely logikailag egyenértékű egy összetettebb struktúrával. Ezzel a módszerrel megállapíthatja, hogy két különböző FORMATETC struktúra ugyanazokat az adatokat adja-e vissza, így nincs szükség duplikált renderelésre. |
| IDataObject.GetData(FORMATETC, STGMEDIUM) |
Adatokat kér le egy forrásadat-objektumból. Az GetData(FORMATETC, STGMEDIUM) adatfelhasználó által meghívott metódus a megadott FORMATETC struktúrában leírt adatokat rendereli, és a megadott STGMEDIUM struktúrán keresztül továbbítja. A hívó ezután felelősséget vállal a struktúra felszabadításáért STGMEDIUM . |
| IDataObject.GetDataHere(FORMATETC, STGMEDIUM) |
Adatokat kér le egy forrásadat-objektumból. Ez az adatfogyó által hívott metódus abban különbözik a GetData(FORMATETC, STGMEDIUM) metódustól, hogy a hívónak ki kell osztania és felszabadítania a megadott tárolóeszközt. |
| IDataObject.QueryGetData(FORMATETC) |
Meghatározza, hogy az adatobjektum képes-e renderelni a struktúrában FORMATETC leírt adatokat. A beillesztési vagy ledobási műveletet megkísérlõ objektumok meghívhatják ezt a metódust, mielőtt meghívják GetData(FORMATETC, STGMEDIUM) , hogy jelezve legyen, hogy a művelet sikeres lehet-e. |
| IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) |
Adatokat továbbít a metódust megvalósító objektumnak. Ezt a metódust egy adatforrást tartalmazó objektum hívja meg. |
Bővítő metódusok
| Name | Description |
|---|---|
| TryGetData<T>(IDataObject, String, Boolean, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(IDataObject, String, Func<TypeName,Type>, Boolean, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(IDataObject, String, T) |
Alapszintű adatátviteli mechanizmust implementál. |
| TryGetData<T>(IDataObject, T) |
Alapszintű adatátviteli mechanizmust implementál. |