DataObject Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Implementiert einen grundlegenden Mechanismus für die Datenübertragung.
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
- Vererbung
-
DataObject
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel werden Daten in einer DataObject. Zunächst wird eine neue DataObject erstellt und eine Komponente darin gespeichert. Anschließend wird überprüft, ob Daten im entsprechenden Typ in der DataObjectDatei vorhanden sind. Das Ergebnis wird in einem Textfeld angezeigt. Dieser Code erfordert, dass textBox1 er erstellt wurde.
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
Im nächsten Beispiel werden die in einer DataObjectDatei gespeicherten Daten abgerufen. Zunächst wird ein neues DataObject mit Textdaten erstellt. Anschließend werden die Daten abgerufen, das Format als Zeichenfolge angegeben und in einem Textfeld angezeigt. Das Datenformat wird automatisch von Text in Zeichenfolge konvertiert. Dieser Code erfordert, dass textBox1 er erstellt wurde.
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
Hinweise
DataObject implementiert die IDataObject Schnittstelle, deren Methoden einen formatunabhängigen Mechanismus für die Datenübertragung bereitstellen.
A DataObject wird in der Regel mit den Clipboard Drag-and-Drop-Vorgängen verwendet. Die DataObject Klasse stellt die empfohlene Implementierung der IDataObject Schnittstelle bereit. Es wird empfohlen, die DataObject Klasse zu verwenden, anstatt sich selbst zu implementieren IDataObject .
Mehrere Datenteile in unterschiedlichen Formaten können in einem DataObject. Daten werden aus einem DataObject zugeordneten Format abgerufen. Da die Zielanwendung möglicherweise nicht bekannt ist, können Sie die Wahrscheinlichkeit erhöhen, dass die Daten im geeigneten Format für eine Anwendung vorliegen, indem Sie die Daten in mehreren DataObject Formaten platzieren. Siehe DataFormats die vordefinierten Formate. Sie können Ihr eigenes Format implementieren, indem Sie eine Instanz der DataFormats.Format Klasse erstellen.
Zum Speichern von Daten in einem DataObject, übergeben Sie die Daten an den Konstruktor oder Aufruf SetData. Sie können Daten in mehreren Formaten zu demselben DataObjecthinzufügen. Wenn die Daten, die Sie hinzufügen, nur im systemeigenen Format abgerufen werden sollen, rufen SetData(String, Boolean, Object) Sie den autoConvert Parameter auf .false
Daten können aus einem DataObject beliebigen Format abgerufen werden, das mit GetDatadem Format kompatibel ist. Beispielsweise kann Text in Unicode konvertiert werden. Rufen Sie auf GetData , um Daten im Format abzurufen, in dem sie gespeichert wurde, den autoConvert Parameter auf false.
Rufen Sie auf, um GetFormatszu bestimmen, in welchen Formaten die Daten gespeichert werden. Um festzustellen, ob ein Format verfügbar ist, rufen Sie GetDataPresent das gewünschte Format auf.
Die DataObject Klasse bietet zusätzliche Methoden, die das Arbeiten mit Daten in gängigen Formaten vereinfachen. Verwenden Sie zum Hinzufügen von Daten eines bestimmten Formats zur DataObjectentsprechenden SetFormatmethode , z SetText. B. . Rufen Sie zum Abrufen von Daten eines bestimmten Formats zuerst DataObjectdie entsprechende ContainsFormatmethode (z ContainsText. B. ) auf, um zu bestimmen, ob die Daten in diesem DataObject Format enthalten sind, und rufen Sie dann die entsprechende GetFormatmethode (z GetText. B. ) auf, um die Daten abzurufen, wenn sie DataObject enthalten sind.
Note
Besondere Überlegungen können bei Verwendung des Metadateiformats mit der Zwischenablage erforderlich sein. Aufgrund einer Einschränkung bei der aktuellen Implementierung der DataObject-Klasse wird das vom .NET Framework verwendete Metadateiformat möglicherweise nicht von Anwendungen erkannt, die ein älteres Metadateiformat verwenden. In diesem Fall müssen Sie mit den Programmierschnittstellen für die Win32-Zwischenablage (Application Programming Interfaces, APIs) in der Zwischenablage zusammenarbeiten.
Ein Objekt muss serialisierbar sein, damit es in der Zwischenablage abgelegt werden kann. Weitere Informationen zur Serialisierung finden Sie unter.See System.Runtime.Serialization for more information on serialization. Wenn Ihre Zielanwendung ein sehr spezifisches Datenformat erfordert, können die Header, die den Daten im Serialisierungsprozess hinzugefügt wurden, verhindern, dass die Anwendung Ihre Daten erkennt. Um das Datenformat beizubehalten, fügen Sie Die Daten als Byte Array zu einer MemoryStream hinzu und übergeben sie MemoryStream an die SetData Methode.
Konstruktoren
| Name | Beschreibung |
|---|---|
| DataObject() |
Initialisiert eine neue Instanz der DataObject-Klasse. |
| DataObject(Object) |
Initialisiert eine neue Instanz der DataObject Klasse und fügt das angegebene Objekt hinzu. |
| DataObject(String, Object) |
Initialisiert eine neue Instanz der DataObject Klasse und fügt das angegebene Objekt im angegebenen Format hinzu. |
Methoden
| Name | Beschreibung |
|---|---|
| ContainsAudio() |
Gibt an, ob das Datenobjekt Daten im WaveAudio Format enthält. |
| ContainsFileDropList() |
Gibt an, ob das Datenobjekt Daten enthält, die sich FileDrop im Format befinden oder in dieses Format konvertiert werden können. |
| ContainsImage() |
Gibt an, ob das Datenobjekt Daten enthält, die sich Bitmap im Format befinden oder in dieses Format konvertiert werden können. |
| ContainsText() |
Gibt an, ob das Datenobjekt Daten im UnicodeText Format enthält. |
| ContainsText(TextDataFormat) |
Gibt an, ob das Datenobjekt Textdaten im durch den angegebenen Wert angegebenen TextDataFormat Format enthält. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetAudioStream() |
Ruft einen Audiodatenstrom aus dem Datenobjekt ab. |
| GetData(String, Boolean) |
Veraltet.
Gibt die mit dem angegebenen Datenformat verknüpften Daten zurück, wobei ein automatisierter Konvertierungsparameter verwendet wird, um zu bestimmen, ob die Daten in das Format konvertiert werden sollen. |
| GetData(String) |
Veraltet.
Gibt die mit dem angegebenen Datenformat verknüpften Daten zurück. |
| GetData(Type) |
Veraltet.
Gibt die Daten zurück, die dem angegebenen Klassentypformat zugeordnet sind. |
| GetDataPresent(String, Boolean) |
Bestimmt, ob dies DataObject Daten im angegebenen Format enthält oder optional Daten enthält, die in das angegebene Format konvertiert werden können. |
| GetDataPresent(String) |
Bestimmt, ob daten, die in dieser DataObject Daten gespeichert sind, zugeordnet sind oder in das angegebene Format konvertiert werden können. |
| GetDataPresent(Type) |
Bestimmt, ob daten, die in dieser DataObject Daten gespeichert sind, zugeordnet sind oder in das angegebene Format konvertiert werden können. |
| GetFileDropList() |
Ruft eine Auflistung von Dateinamen aus dem Datenobjekt ab. |
| GetFormats() |
Gibt eine Liste aller Formate zurück, in die Daten, die in diesem DataObject Format gespeichert sind, zugeordnet sind oder in die konvertiert werden können. |
| GetFormats(Boolean) |
Gibt eine Liste aller Formate zurück, in die Daten gespeichert sind, die in diesem DataObject Format gespeichert sind, oder können in diese konvertiert werden. Dabei wird mithilfe eines Parameters für die automatische Konvertierung ermittelt, ob nur systemeigene Datenformate oder alle Formate abgerufen werden sollen, in die die Daten konvertiert werden können. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetImage() |
Ruft ein Bild aus dem Datenobjekt ab. |
| GetText() |
Ruft Textdaten aus dem Datenobjekt im UnicodeText Format ab. |
| GetText(TextDataFormat) |
Ruft Textdaten aus dem Datenobjekt im format ab, das durch den angegebenen TextDataFormat Wert angegeben ist. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| SetAudio(Byte[]) |
Byte Fügt dem Datenobjekt ein Array im WaveAudio Format hinzu, nachdem es in ein Stream. |
| SetAudio(Stream) |
Fügt dem Datenobjekt im Stream Format ein Objekt WaveAudio hinzu. |
| SetData(Object) |
Fügt das angegebene Objekt dem DataObject Objekttyp als Datenformat hinzu. |
| SetData(String, Boolean, Object) |
Fügt das angegebene Objekt dem DataObject angegebenen Format hinzu und gibt an, ob die Daten in ein anderes Format konvertiert werden können. |
| SetData(String, Object) |
Fügt das angegebene Objekt dem DataObject angegebenen Format hinzu. |
| SetData(Type, Object) |
Fügt das angegebene Objekt dem DataObject angegebenen Typ als Format hinzu. |
| SetDataAsJson<T>(String, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| SetDataAsJson<T>(T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| SetFileDropList(StringCollection) |
Fügt dem Datenobjekt im FileDrop Format eine Auflistung von Dateinamen hinzu. |
| SetImage(Image) |
Fügt dem Datenobjekt im Image Format ein Objekt Bitmap hinzu. |
| SetText(String, TextDataFormat) |
Fügt dem Datenobjekt Textdaten im durch den angegebenen Wert angegebenen TextDataFormat Format hinzu. |
| SetText(String) |
Fügt dem Datenobjekt Textdaten im UnicodeText Format hinzu. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TryGetData<T>(String, Boolean, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(String, Func<TypeName,Type>, Boolean, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(String, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetDataCore<T>(String, Func<TypeName,Type>, Boolean, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) |
Erstellt eine Verbindung zwischen einem Datenobjekt und einer Beratenden Spüle. Diese Methode wird von einem Objekt aufgerufen, das eine Beratende Spüle unterstützt und ermöglicht es der Beratenden Spüle, über Änderungen in den Daten des Objekts benachrichtigt zu werden. |
| IDataObject.DUnadvise(Int32) |
Zerstört eine zuvor hergestellte Benachrichtigungsverbindung. |
| IDataObject.EnumDAdvise(IEnumSTATDATA) |
Erstellt ein Objekt, das zum Aufzählen der aktuellen Empfehlungsverbindungen verwendet werden kann. |
| IDataObject.EnumFormatEtc(DATADIR) |
Erstellt ein Objekt zum Aufzählen der FORMATETC Strukturen für ein Datenobjekt. Diese Strukturen werden in Aufrufen von GetData(FORMATETC, STGMEDIUM) oder SetData(FORMATETC, STGMEDIUM, Boolean). |
| IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) |
Stellt eine Standardstruktur FORMATETC bereit, die logisch einer komplexeren Struktur entspricht. Verwenden Sie diese Methode, um zu bestimmen, ob zwei unterschiedliche FORMATETC Strukturen dieselben Daten zurückgeben würden, wodurch die Notwendigkeit des doppelten Renderings entfernt wird. |
| IDataObject.GetData(FORMATETC, STGMEDIUM) |
Ruft Daten aus einem Quelldatenobjekt ab. Die GetData(FORMATETC, STGMEDIUM) Methode, die von einem Datenverbraucher aufgerufen wird, rendert die in der angegebenen FORMATETC Struktur beschriebenen Daten und überträgt sie über die angegebene STGMEDIUM Struktur. Der Aufrufer übernimmt dann die Verantwortung für die Freigabe der STGMEDIUM Struktur. |
| IDataObject.GetDataHere(FORMATETC, STGMEDIUM) |
Ruft Daten aus einem Quelldatenobjekt ab. Diese Methode, die von einem Datenanwender aufgerufen wird, unterscheidet sich von der GetData(FORMATETC, STGMEDIUM) Methode, in der der Aufrufer das angegebene Speichermedium zuordnen und freigeben muss. |
| IDataObject.QueryGetData(FORMATETC) |
Bestimmt, ob das Datenobjekt die in der FORMATETC Struktur beschriebenen Daten rendern kann. Objekte, die versuchen, einen Einfüge- oder Drop-Vorgang auszuführen, können diese Methode aufrufen, um GetData(FORMATETC, STGMEDIUM) einen Hinweis darauf zu erhalten, ob der Vorgang erfolgreich sein kann. |
| IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) |
Überträgt Daten an das Objekt, das diese Methode implementiert. Diese Methode wird von einem Objekt aufgerufen, das eine Datenquelle enthält. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| TryGetData<T>(IDataObject, String, Boolean, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(IDataObject, String, Func<TypeName,Type>, Boolean, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(IDataObject, String, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |
| TryGetData<T>(IDataObject, T) |
Implementiert einen grundlegenden Mechanismus für die Datenübertragung. |