DataObject Classe

Definição

Implementa um mecanismo básico de transferência de dados.

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
Herança
DataObject
Atributos
Implementações

Exemplos

O exemplo de código a seguir adiciona dados em um DataObject. Primeiro, um novo DataObject é criado e um componente é armazenado nele. Em seguida, verifica se há dados no tipo apropriado no DataObject. O resultado é exibido em uma caixa de texto. Esse código requer que textBox1 tenha sido criado.

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

O próximo exemplo recupera os dados armazenados em um DataObject. Primeiro, um novo DataObject é criado com dados de texto. Em seguida, os dados são recuperados, especificando seu formato como uma cadeia de caracteres e exibidos em uma caixa de texto. O formato de dados é convertido automaticamente de texto em cadeia de caracteres. Esse código requer que textBox1 tenha sido criado.

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

Comentários

DataObject implementa a IDataObject interface, cujos métodos fornecem um mecanismo independente de formato para transferência de dados.

Um DataObject é normalmente usado com as Clipboard operações de arrastar e soltar. A DataObject classe fornece a implementação recomendada da IDataObject interface. É sugerido que você use a DataObject classe em vez de IDataObject implementar a si mesmo.

Várias partes de dados em formatos diferentes podem ser armazenadas em um DataObject. Os dados são recuperados de um DataObject por seu formato associado. Como o aplicativo de destino pode não ser conhecido, você pode aumentar a probabilidade de que os dados estejam no formato apropriado para um aplicativo colocando os dados em vários DataObject formatos. Consulte DataFormats os formatos predefinidos. Você pode implementar seu próprio formato criando uma instância da DataFormats.Format classe.

Para armazenar dados em um DataObject, passe os dados para o construtor ou chame SetData. Você pode adicionar dados em vários formatos ao mesmo DataObject. Se você quiser que os dados adicionados sejam recuperados somente em seu formato nativo, chame SetData(String, Boolean, Object) com o autoConvert parâmetro definido como false.

Os dados podem ser recuperados de um DataObject formato compatível com GetData. Por exemplo, o texto pode ser convertido em Unicode. Para recuperar dados no formato em que foram armazenados, chame GetData com o autoConvert parâmetro definido como false.

Para determinar em quais formatos os dados são armazenados, chame GetFormats. Para determinar se um formato está disponível, chame GetDataPresent com o formato desejado.

A DataObject classe fornece métodos adicionais que facilitam o trabalho com dados em formatos comuns. Para adicionar dados de um formato específico ao DataObjectmétodo , use o método format apropriadoSet, como SetText. Para recuperar dados de um formato específico, DataObjectprimeiro chame o método format apropriado Contains (como ContainsText) para determinar se os DataObject dados contêm nesse formato e chame o método format apropriado Get (como GetText) para recuperar os dados se eles os DataObject contiverem.

Note

Considerações especiais podem ser necessárias ao usar o formato de metafile com a Área de Transferência. Devido a uma limitação na implementação atual da classe DataObject, o formato de metafile usado pelo .NET Framework pode não ser reconhecido por aplicativos que usam um formato de metafile mais antigo. Nesse caso, você deve interoperar com as APIs (interfaces de programação do aplicativo de área de transferência) Win32.

Um objeto deve ser serializável para que ele seja colocado na Área de Transferência. Confira System.Runtime.Serialization mais informações sobre serialização. Se o aplicativo de destino exigir um formato de dados muito específico, os cabeçalhos adicionados aos dados no processo de serialização poderão impedir que o aplicativo reconheça seus dados. Para preservar o formato de dados, adicione seus dados como uma Byte matriz a um MemoryStream e passe o MemoryStream método para ele SetData .

Construtores

Nome Description
DataObject()

Inicializa uma nova instância da classe DataObject.

DataObject(Object)

Inicializa uma nova instância da DataObject classe e adiciona o objeto especificado a ela.

DataObject(String, Object)

Inicializa uma nova instância da DataObject classe e adiciona o objeto especificado no formato especificado.

Métodos

Nome Description
ContainsAudio()

Indica se o objeto de dados contém dados no WaveAudio formato.

ContainsFileDropList()

Indica se o objeto de dados contém dados que estão no FileDrop formato ou podem ser convertidos nesse formato.

ContainsImage()

Indica se o objeto de dados contém dados que estão no Bitmap formato ou podem ser convertidos nesse formato.

ContainsText()

Indica se o objeto de dados contém dados no UnicodeText formato.

ContainsText(TextDataFormat)

Indica se o objeto de dados contém dados de texto no formato indicado pelo valor especificado TextDataFormat .

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAudioStream()

Recupera um fluxo de áudio do objeto de dados.

GetData(String, Boolean)

Retorna os dados associados ao formato de dados especificado, usando um parâmetro de conversão automatizado para determinar se os dados devem ser convertidos no formato.

GetData(String)

Retorna os dados associados ao formato de dados especificado.

GetData(Type)

Retorna os dados associados ao formato de tipo de classe especificado.

GetDataPresent(String, Boolean)

Determina se isso DataObject contém dados no formato especificado ou, opcionalmente, contém dados que podem ser convertidos no formato especificado.

GetDataPresent(String)

Determina se os dados armazenados nisso DataObject estão associados ou podem ser convertidos no formato especificado.

GetDataPresent(Type)

Determina se os dados armazenados nisso DataObject estão associados ou podem ser convertidos no formato especificado.

GetFileDropList()

Recupera uma coleção de nomes de arquivo do objeto de dados.

GetFormats()

Retorna uma lista de todos os formatos aos quais os dados armazenados estão DataObject associados ou podem ser convertidos.

GetFormats(Boolean)

Retorna uma lista de todos os formatos aos quais os dados armazenados estão DataObject associados ou podem ser convertidos, usando um parâmetro de conversão automática para determinar se devem ser recuperados apenas formatos de dados nativos ou todos os formatos para os quais os dados podem ser convertidos.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetImage()

Recupera uma imagem do objeto de dados.

GetText()

Recupera dados de texto do objeto de dados no UnicodeText formato.

GetText(TextDataFormat)

Recupera dados de texto do objeto de dados no formato indicado pelo valor especificado TextDataFormat .

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
SetAudio(Byte[])

Adiciona uma Byte matriz ao objeto de dados no formato depois de convertê-la em WaveAudio um Stream.

SetAudio(Stream)

Adiciona um Stream ao objeto de dados no WaveAudio formato.

SetData(Object)

Adiciona o objeto especificado ao uso do DataObject tipo de objeto como o formato de dados.

SetData(String, Boolean, Object)

Adiciona o objeto especificado ao uso do DataObject formato especificado e indica se os dados podem ser convertidos em outro formato.

SetData(String, Object)

Adiciona o objeto especificado ao uso do DataObject formato especificado.

SetData(Type, Object)

Adiciona o objeto especificado ao uso do DataObject tipo especificado como o formato.

SetFileDropList(StringCollection)

Adiciona uma coleção de nomes de arquivo ao objeto de dados no FileDrop formato.

SetImage(Image)

Adiciona um Image ao objeto de dados no Bitmap formato.

SetText(String, TextDataFormat)

Adiciona dados de texto ao objeto de dados no formato indicado pelo valor especificado TextDataFormat .

SetText(String)

Adiciona dados de texto ao objeto de dados no UnicodeText formato.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Cria uma conexão entre um objeto de dados e um coletor de consultoria. Esse método é chamado por um objeto que dá suporte a um coletor de consultoria e permite que o coletor de consultoria seja notificado sobre alterações nos dados do objeto.

IDataObject.DUnadvise(Int32)

Destrói uma conexão de notificação que havia sido estabelecida anteriormente.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Cria um objeto que pode ser usado para enumerar as conexões de consultoria atuais.

IDataObject.EnumFormatEtc(DATADIR)

Cria um objeto para enumerar as FORMATETC estruturas de um objeto de dados. Essas estruturas são usadas em chamadas para GetData(FORMATETC, STGMEDIUM) ou SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Fornece uma estrutura padrão FORMATETC que é logicamente equivalente a uma estrutura mais complexa. Use esse método para determinar se duas estruturas diferentes FORMATETC retornariam os mesmos dados, removendo a necessidade de renderização duplicada.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Obtém dados de um objeto de dados de origem. O GetData(FORMATETC, STGMEDIUM) método, que é chamado por um consumidor de dados, renderiza os dados descritos na estrutura especificada FORMATETC e os transfere pela estrutura especificada STGMEDIUM . Em seguida, o chamador assume a responsabilidade de liberar a STGMEDIUM estrutura.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Obtém dados de um objeto de dados de origem. Esse método, que é chamado por um consumidor de dados, difere do GetData(FORMATETC, STGMEDIUM) método em que o chamador deve alocar e liberar o meio de armazenamento especificado.

IDataObject.QueryGetData(FORMATETC)

Determina se o objeto de dados é capaz de renderizar os dados descritos na FORMATETC estrutura. Objetos que tentam uma operação de colar ou soltar podem chamar esse método antes de chamar GetData(FORMATETC, STGMEDIUM) para obter uma indicação de se a operação pode ser bem-sucedida.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Transfere dados para o objeto que implementa esse método. Esse método é chamado por um objeto que contém uma fonte de dados.

Aplica-se a

Confira também