DataObject Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Implementa un meccanismo di trasferimento dei dati di base.
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
- Ereditarietà
-
DataObject
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente vengono aggiunti dati in un oggetto DataObject. Prima di tutto, viene creato un nuovo DataObject oggetto e ne viene archiviato un componente. Verifica quindi se i dati nel tipo appropriato sono presenti in DataObject. Il risultato viene visualizzato in una casella di testo. Questo codice richiede che textBox1 sia stato creato.
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
Nell'esempio seguente vengono recuperati i dati archiviati in un oggetto DataObject. Prima di tutto, viene creato un nuovo DataObject oggetto con dati di testo. I dati vengono quindi recuperati, specificandone il formato come stringa e visualizzati in una casella di testo. Il formato dei dati viene convertito automaticamente da testo a stringa. Questo codice richiede che textBox1 sia stato creato.
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
Commenti
DataObject implementa l'interfaccia IDataObject , i cui metodi forniscono un meccanismo indipendente dal formato per il trasferimento dei dati.
Un DataObject oggetto viene in genere usato con e Clipboard nelle operazioni di trascinamento della selezione. La DataObject classe fornisce l'implementazione consigliata dell'interfaccia IDataObject . È consigliabile usare la DataObject classe anziché implementare IDataObject se stessi.
È possibile archiviare più parti di dati in formati diversi in un oggetto DataObject. I dati vengono recuperati da un oggetto DataObject in base al formato associato. Poiché l'applicazione di destinazione potrebbe non essere nota, è possibile aumentare la probabilità che i dati siano nel formato appropriato per un'applicazione inserendo i dati in DataObject più formati. Vedere DataFormats per i formati predefiniti. È possibile implementare un formato personalizzato creando un'istanza della DataFormats.Format classe .
Per archiviare i dati in un DataObjectoggetto , passare i dati al costruttore o chiamare SetData. È possibile aggiungere dati in più formati allo stesso DataObjectoggetto . Se si desidera che i dati aggiunti vengano recuperati solo nel formato nativo, chiamare SetData(String, Boolean, Object) con il autoConvert parametro impostato su false.
I dati possono essere recuperati da un oggetto DataObject in qualsiasi formato compatibile con GetData. Ad esempio, il testo può essere convertito in Unicode. Per recuperare i dati nel formato in cui è stato archiviato, chiamare GetData con il autoConvert parametro impostato su false.
Per determinare i formati in cui vengono archiviati i dati, chiamare GetFormats. Per determinare se è disponibile un formato, chiamare GetDataPresent con il formato desiderato.
La DataObject classe fornisce metodi aggiuntivi che semplificano l'uso dei dati in formati comuni. Per aggiungere dati di un formato specifico a DataObject, usare il metodo Set appropriato, ad esempio SetText. Per recuperare i dati di un formato specifico da DataObject, chiamare innanzitutto il metodo Contains appropriato (ad esempio ) per determinare se ContainsText contiene dati in tale formato, quindi chiamare il metodo DataObject appropriato Get (ad esempio GetText) per recuperare i dati se DataObject contiene.
Note
Quando si usa il formato metafile con gli Appunti, possono essere necessarie considerazioni speciali. A causa di una limitazione nell'implementazione corrente della classe DataObject, il formato metafile usato da .NET Framework potrebbe non essere riconosciuto dalle applicazioni che usano un formato metafile meno recente. In questo caso, è necessario interagire con le API (Application Programming Interface) Win32 Clipboard.
Un oggetto deve essere serializzabile perché venga inserito negli Appunti. Per altre informazioni sulla serializzazione, vedere System.Runtime.Serialization . Se l'applicazione di destinazione richiede un formato di dati molto specifico, le intestazioni aggiunte ai dati nel processo di serializzazione potrebbero impedire all'applicazione di riconoscere i dati. Per mantenere il formato dei dati, aggiungere i dati come Byte matrice a un MemoryStream oggetto e passare MemoryStream al SetData metodo .
Costruttori
| Nome | Descrizione |
|---|---|
| DataObject() |
Inizializza una nuova istanza della classe DataObject. |
| DataObject(Object) |
Inizializza una nuova istanza della DataObject classe e aggiunge l'oggetto specificato. |
| DataObject(String, Object) |
Inizializza una nuova istanza della DataObject classe e aggiunge l'oggetto specificato nel formato specificato. |
Metodi
| Nome | Descrizione |
|---|---|
| ContainsAudio() |
Indica se l'oggetto dati contiene dati nel WaveAudio formato . |
| ContainsFileDropList() |
Indica se l'oggetto dati contiene dati nel FileDrop formato o che possono essere convertiti in tale formato. |
| ContainsImage() |
Indica se l'oggetto dati contiene dati nel Bitmap formato o che possono essere convertiti in tale formato. |
| ContainsText() |
Indica se l'oggetto dati contiene dati nel UnicodeText formato . |
| ContainsText(TextDataFormat) |
Indica se l'oggetto dati contiene dati di testo nel formato indicato dal valore specificato TextDataFormat . |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetAudioStream() |
Recupera un flusso audio dall'oggetto dati. |
| GetData(String, Boolean) |
Obsoleti.
Restituisce i dati associati al formato di dati specificato, utilizzando un parametro di conversione automatica per determinare se convertire i dati nel formato. |
| GetData(String) |
Obsoleti.
Restituisce i dati associati al formato di dati specificato. |
| GetData(Type) |
Obsoleti.
Restituisce i dati associati al formato del tipo di classe specificato. |
| GetDataPresent(String, Boolean) |
Determina se contiene DataObject dati nel formato specificato o, facoltativamente, contiene dati che possono essere convertiti nel formato specificato. |
| GetDataPresent(String) |
Determina se i dati archiviati in questo DataObject oggetto sono associati o possono essere convertiti nel formato specificato. |
| GetDataPresent(Type) |
Determina se i dati archiviati in questo DataObject oggetto sono associati o possono essere convertiti nel formato specificato. |
| GetFileDropList() |
Recupera una raccolta di nomi di file dall'oggetto dati. |
| GetFormats() |
Restituisce un elenco di tutti i formati in cui i dati archiviati in questo DataObject oggetto sono associati o possono essere convertiti. |
| GetFormats(Boolean) |
Restituisce un elenco di tutti i formati a cui i dati archiviati sono DataObject associati o possono essere convertiti, utilizzando un parametro di conversione automatica per determinare se recuperare solo i formati di dati nativi o tutti i formati in cui è possibile convertire i dati. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetImage() |
Recupera un'immagine dall'oggetto dati. |
| GetText() |
Recupera i dati di testo dall'oggetto dati nel UnicodeText formato . |
| GetText(TextDataFormat) |
Recupera i dati di testo dall'oggetto dati nel formato indicato dal valore specificato TextDataFormat . |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| SetAudio(Byte[]) |
Aggiunge una Byte matrice all'oggetto dati nel WaveAudio formato dopo la conversione in un oggetto Stream. |
| SetAudio(Stream) |
Aggiunge un Stream oggetto all'oggetto dati nel WaveAudio formato . |
| SetData(Object) |
Aggiunge l'oggetto specificato all'oggetto DataObject utilizzando il tipo di oggetto come formato dati. |
| SetData(String, Boolean, Object) |
Aggiunge l'oggetto specificato all'oggetto DataObject utilizzando il formato specificato e indica se i dati possono essere convertiti in un altro formato. |
| SetData(String, Object) |
Aggiunge l'oggetto specificato all'oggetto DataObject utilizzando il formato specificato. |
| SetData(Type, Object) |
Aggiunge l'oggetto specificato all'oggetto DataObject utilizzando il tipo specificato come formato. |
| SetDataAsJson<T>(String, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| SetDataAsJson<T>(T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| SetFileDropList(StringCollection) |
Aggiunge una raccolta di nomi di file all'oggetto dati nel FileDrop formato . |
| SetImage(Image) |
Aggiunge un Image oggetto all'oggetto dati nel Bitmap formato . |
| SetText(String, TextDataFormat) |
Aggiunge dati di testo all'oggetto dati nel formato indicato dal valore specificato TextDataFormat . |
| SetText(String) |
Aggiunge dati di testo all'oggetto dati nel UnicodeText formato . |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| TryGetData<T>(String, Boolean, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(String, Func<TypeName,Type>, Boolean, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(String, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetDataCore<T>(String, Func<TypeName,Type>, Boolean, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) |
Crea una connessione tra un oggetto dati e un sink di avviso. Questo metodo viene chiamato da un oggetto che supporta un sink di consulenza e consente al sink di consulenza di ricevere una notifica delle modifiche nei dati dell'oggetto. |
| IDataObject.DUnadvise(Int32) |
Elimina definitivamente una connessione di notifica stabilita in precedenza. |
| IDataObject.EnumDAdvise(IEnumSTATDATA) |
Crea un oggetto che può essere utilizzato per enumerare le connessioni consultive correnti. |
| IDataObject.EnumFormatEtc(DATADIR) |
Crea un oggetto per enumerare le FORMATETC strutture per un oggetto dati. Queste strutture vengono usate nelle chiamate a GetData(FORMATETC, STGMEDIUM) o SetData(FORMATETC, STGMEDIUM, Boolean). |
| IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) |
Fornisce una struttura standard FORMATETC equivalente logicamente a una struttura più complessa. Utilizzare questo metodo per determinare se due strutture diverse FORMATETC restituiscono gli stessi dati, rimuovendo la necessità di eseguire il rendering duplicato. |
| IDataObject.GetData(FORMATETC, STGMEDIUM) |
Ottiene i dati da un oggetto dati di origine. Il GetData(FORMATETC, STGMEDIUM) metodo , chiamato da un consumer di dati, esegue il rendering dei dati descritti nella struttura specificata FORMATETC e lo trasferisce tramite la struttura specificata STGMEDIUM . Il chiamante assume quindi la responsabilità di rilasciare la STGMEDIUM struttura. |
| IDataObject.GetDataHere(FORMATETC, STGMEDIUM) |
Ottiene i dati da un oggetto dati di origine. Questo metodo, chiamato da un consumer di dati, differisce dal GetData(FORMATETC, STGMEDIUM) metodo in quanto il chiamante deve allocare e liberare il supporto di archiviazione specificato. |
| IDataObject.QueryGetData(FORMATETC) |
Determina se l'oggetto dati è in grado di eseguire il rendering dei dati descritti nella FORMATETC struttura. Gli oggetti che tentano un'operazione incolla o rilascia possono chiamare questo metodo prima di chiamare GetData(FORMATETC, STGMEDIUM) per ottenere un'indicazione dell'esito positivo dell'operazione. |
| IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) |
Trasferisce i dati all'oggetto che implementa questo metodo. Questo metodo viene chiamato da un oggetto che contiene un'origine dati. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| TryGetData<T>(IDataObject, String, Boolean, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(IDataObject, String, Func<TypeName,Type>, Boolean, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(IDataObject, String, T) |
Implementa un meccanismo di trasferimento dei dati di base. |
| TryGetData<T>(IDataObject, T) |
Implementa un meccanismo di trasferimento dei dati di base. |