DataObject Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Implementa un mecanismo básico de transferencia de datos.
public ref class DataObject : System::Windows::Forms::IDataObject
public ref class DataObject : System::Runtime::InteropServices::ComTypes::IDataObject, System::Windows::Forms::IDataObject
[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)>]
type DataObject = class
interface IDataObject
interface UnsafeNativeMethods.IOleDataObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
interface IDataObject
interface IDataObject
Public Class DataObject
Implements IDataObject
Public Class DataObject
Implements IDataObject, IDataObject
- Herencia
-
DataObject
- Atributos
- Implementaciones
Ejemplos
En el ejemplo de código siguiente se agregan datos en .DataObject En primer lugar, se crea un nuevo DataObject y se almacena un componente en él. A continuación, comprueba si existen datos en el tipo adecuado en .DataObject El resultado se muestra en un cuadro de texto. Este código requiere que textBox1 se haya creado.
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
En el ejemplo siguiente se recuperan los datos almacenados en .DataObject En primer lugar, se crea un nuevo DataObject con datos de texto. A continuación, los datos se recuperan, especifican su formato como una cadena y se muestran en un cuadro de texto. El formato de datos se convierte automáticamente de texto a cadena. Este código requiere que textBox1 se haya creado.
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
Comentarios
DataObject implementa la IDataObject interfaz , cuyos métodos proporcionan un mecanismo independiente del formato para la transferencia de datos.
Normalmente DataObject se usa con las operaciones de Clipboard arrastrar y colocar. La DataObject clase proporciona la implementación recomendada de la IDataObject interfaz. Se recomienda usar la DataObject clase en lugar de implementarse IDataObject usted mismo.
Se pueden almacenar varios fragmentos de datos en diferentes formatos en .DataObject Los datos se recuperan de un DataObject objeto mediante su formato asociado. Dado que es posible que no se conozca la aplicación de destino, puede aumentar la probabilidad de que los datos estén en el formato adecuado para una aplicación colocando los datos en un DataObject en varios formatos. Consulte DataFormats para conocer los formatos predefinidos. Puede implementar su propio formato mediante la creación de una instancia de la DataFormats.Format clase .
Para almacenar datos en , DataObjectpase los datos al constructor o llame a SetData. Puede agregar datos en varios formatos al mismo DataObject. Si desea que los datos que agregue se recuperen solo en su formato nativo, llame a SetData(String, Boolean, Object) con el autoConvert parámetro establecido falseen .
Los datos se pueden recuperar de un DataObject en cualquier formato que sea compatible con GetData. Por ejemplo, el texto se puede convertir en Unicode. Para recuperar datos en el formato en el que se almacenó, llame a GetData con el autoConvert parámetro establecido falseen .
Para determinar en qué formatos se almacenan los datos, llame a GetFormats. Para determinar si hay un formato disponible, llame a GetDataPresent con el formato deseado.
La DataObject clase proporciona métodos adicionales que facilitan el trabajo con datos en formatos comunes. Para agregar datos de un formato determinado a DataObject, use el método Format adecuadoSet, como SetText. Para recuperar datos de un formato determinado de DataObject, primero llame al método Format adecuado Contains (por ContainsTextejemplo, ) para determinar si DataObject contiene datos en ese formato y, a continuación, llame al método Format adecuado Get (como GetText) para recuperar los datos si lo DataObject contiene.
Note
Es posible que sea necesario tener en cuenta consideraciones especiales al usar el formato de metarchivo con el Portapapeles. Debido a una limitación en la implementación actual de la clase DataObject, es posible que las aplicaciones que usen un formato de metarchivo anterior no reconozcan el formato de metarchivo usado por .NET Framework. En este caso, debes interoperar con las interfaces de programación de aplicaciones de Portapapeles win32 (API).
Un objeto debe ser serializable para que se coloque en el Portapapeles. Consulte System.Runtime.Serialization para obtener más información sobre la serialización. Si la aplicación de destino requiere un formato de datos muy específico, los encabezados agregados a los datos del proceso de serialización pueden impedir que la aplicación reconozca los datos. Para conservar el formato de datos, agregue los datos como una Byte matriz a MemoryStream y pase al MemoryStreamSetData método .
Constructores
| Nombre | Description |
|---|---|
| DataObject() |
Inicializa una nueva instancia de la clase DataObject. |
| DataObject(Object) |
Inicializa una nueva instancia de la DataObject clase y agrega el objeto especificado a ella. |
| DataObject(String, Object) |
Inicializa una nueva instancia de la DataObject clase y agrega el objeto especificado en el formato especificado. |
Métodos
| Nombre | Description |
|---|---|
| ContainsAudio() |
Indica si el objeto de datos contiene datos en el WaveAudio formato . |
| ContainsFileDropList() |
Indica si el objeto de datos contiene datos que están en el FileDrop formato o se pueden convertir a ese formato. |
| ContainsImage() |
Indica si el objeto de datos contiene datos que están en el Bitmap formato o se pueden convertir a ese formato. |
| ContainsText() |
Indica si el objeto de datos contiene datos en el UnicodeText formato . |
| ContainsText(TextDataFormat) |
Indica si el objeto de datos contiene datos de texto en el formato indicado por el valor especificado TextDataFormat . |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetAudioStream() |
Recupera una secuencia de audio del objeto de datos. |
| GetData(String, Boolean) |
Devuelve los datos asociados al formato de datos especificado, mediante un parámetro de conversión automatizado para determinar si se van a convertir los datos en el formato. |
| GetData(String) |
Devuelve los datos asociados al formato de datos especificado. |
| GetData(Type) |
Devuelve los datos asociados al formato de tipo de clase especificado. |
| GetDataPresent(String, Boolean) |
Determina si contiene DataObject datos en el formato especificado o, opcionalmente, contiene datos que se pueden convertir al formato especificado. |
| GetDataPresent(String) |
Determina si los datos almacenados en este DataObject objeto están asociados o se pueden convertir al formato especificado. |
| GetDataPresent(Type) |
Determina si los datos almacenados en este DataObject objeto están asociados o se pueden convertir al formato especificado. |
| GetFileDropList() |
Recupera una colección de nombres de archivo del objeto de datos. |
| GetFormats() |
Devuelve una lista de todos los formatos a los que se asocian o se pueden convertir los datos almacenados en este DataObject objeto. |
| GetFormats(Boolean) |
Devuelve una lista de todos los formatos a los que se asocian los datos almacenados en este DataObject objeto o se pueden convertir mediante un parámetro de conversión automática para determinar si recuperar solo formatos de datos nativos o todos los formatos a los que se pueden convertir los datos. |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetImage() |
Recupera una imagen del objeto de datos. |
| GetText() |
Recupera datos de texto del objeto de datos con el UnicodeText formato . |
| GetText(TextDataFormat) |
Recupera datos de texto del objeto de datos en el formato indicado por el valor especificado TextDataFormat . |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| SetAudio(Byte[]) |
Agrega una Byte matriz al objeto de datos en el WaveAudio formato después de convertirlo en .Stream |
| SetAudio(Stream) |
Agrega un Stream objeto al objeto de datos en el WaveAudio formato . |
| SetData(Object) |
Agrega el objeto especificado al DataObject uso del tipo de objeto como formato de datos. |
| SetData(String, Boolean, Object) |
Agrega el objeto especificado al DataObject utilizando el formato especificado e indica si los datos se pueden convertir a otro formato. |
| SetData(String, Object) |
Agrega el objeto especificado al DataObject utilizando el formato especificado. |
| SetData(Type, Object) |
Agrega el objeto especificado al DataObject utilizando el tipo especificado como formato. |
| SetFileDropList(StringCollection) |
Agrega una colección de nombres de archivo al objeto de datos con el FileDrop formato . |
| SetImage(Image) |
Agrega un Image objeto al objeto de datos en el Bitmap formato . |
| SetText(String, TextDataFormat) |
Agrega datos de texto al objeto de datos en el formato indicado por el valor especificado TextDataFormat . |
| SetText(String) |
Agrega datos de texto al objeto de datos con el UnicodeText formato . |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) |
Crea una conexión entre un objeto de datos y un receptor de aviso. Un objeto llama a este método que admite un receptor de asesoramiento y permite que el receptor de asesoramiento reciba una notificación de los cambios en los datos del objeto. |
| IDataObject.DUnadvise(Int32) |
Destruye una conexión de notificación que se había establecido anteriormente. |
| IDataObject.EnumDAdvise(IEnumSTATDATA) |
Crea un objeto que se puede usar para enumerar las conexiones de aviso actuales. |
| IDataObject.EnumFormatEtc(DATADIR) |
Crea un objeto para enumerar las FORMATETC estructuras de un objeto de datos. Estas estructuras se usan en llamadas a GetData(FORMATETC, STGMEDIUM) o SetData(FORMATETC, STGMEDIUM, Boolean). |
| IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) |
Proporciona una estructura estándar FORMATETC que es lógicamente equivalente a una estructura más compleja. Use este método para determinar si dos estructuras diferentes FORMATETC devolverían los mismos datos, eliminando la necesidad de representación duplicada. |
| IDataObject.GetData(FORMATETC, STGMEDIUM) |
Obtiene datos de un objeto de datos de origen. El GetData(FORMATETC, STGMEDIUM) método, al que llama un consumidor de datos, representa los datos descritos en la estructura especificada FORMATETC y los transfiere a través de la estructura especificada STGMEDIUM . A continuación, el autor de la llamada asume la responsabilidad de liberar la STGMEDIUM estructura. |
| IDataObject.GetDataHere(FORMATETC, STGMEDIUM) |
Obtiene datos de un objeto de datos de origen. Este método, al que llama un consumidor de datos, difiere del GetData(FORMATETC, STGMEDIUM) método en que el autor de la llamada debe asignar y liberar el medio de almacenamiento especificado. |
| IDataObject.QueryGetData(FORMATETC) |
Determina si el objeto de datos es capaz de representar los datos descritos en la FORMATETC estructura. Los objetos que intentan una operación de pegado o colocación pueden llamar a este método antes de llamar GetData(FORMATETC, STGMEDIUM) a para obtener una indicación de si la operación puede ser correcta. |
| IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) |
Transfiere datos al objeto que implementa este método. Un objeto que contiene un origen de datos llama a este método. |