Share via


DataObject Kelas

Definisi

Menerapkan mekanisme transfer data dasar.

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
[<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
Warisan
DataObject
Atribut
Penerapan

Contoh

Contoh kode berikut menambahkan data dalam DataObject. Pertama, baru DataObject dibuat dan komponen disimpan di dalamnya. Kemudian, memeriksa untuk melihat apakah data dalam jenis yang sesuai ada di DataObject. Hasilnya ditampilkan dalam kotak teks. Kode ini mengharuskan yang textBox1 telah dibuat.

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

Contoh berikutnya mengambil data yang disimpan dalam DataObject. Pertama, baru DataObject dibuat dengan data teks. Kemudian, data diambil, menentukan formatnya sebagai string, dan ditampilkan dalam kotak teks. Format data secara otomatis dikonversi dari teks ke string. Kode ini mengharuskan yang textBox1 telah dibuat.

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

Keterangan

DataObjectIDataObject mengimplementasikan antarmuka , yang metodenya menyediakan mekanisme format independen untuk transfer data.

DataObject biasanya digunakan dengan Clipboard dan dalam operasi seret dan letakkan. Kelas DataObject ini menyediakan implementasi antarmuka yang IDataObject direkomendasikan. Disarankan agar Anda menggunakan DataObject kelas daripada mengimplementasikan IDataObject diri Anda sendiri.

Beberapa bagian data dalam format yang berbeda dapat disimpan dalam DataObject. Data diambil dari DataObject dengan format terkait. Karena aplikasi target mungkin tidak diketahui, Anda dapat meningkatkan kemungkinan bahwa data akan berada dalam format yang sesuai untuk aplikasi dengan menempatkan data dalam DataObject beberapa format. Lihat DataFormats untuk format yang telah ditentukan sebelumnya. Anda dapat menerapkan format Anda sendiri dengan membuat instans DataFormats.Format kelas .

Untuk menyimpan data dalam DataObject, teruskan data ke konstruktor atau panggil SetData. Anda dapat menambahkan data dalam beberapa format ke format yang sama DataObject. Jika Anda ingin data yang Anda tambahkan diambil hanya dalam format aslinya, panggil SetData(String, Boolean, Object) dengan parameter yang autoConvert diatur ke false.

Data dapat diambil dari DataObject dalam format apa pun yang kompatibel dengan GetData. Misalnya, teks dapat dikonversi ke Unicode. Untuk mengambil data dalam format tempat data disimpan, panggil GetData dengan parameter yang autoConvert diatur ke false.

Untuk menentukan format apa data disimpan, panggil GetFormats. Untuk menentukan apakah format tersedia, panggil GetDataPresent dengan format yang diinginkan.

Dalam .NET Framework 2.0, DataObject kelas menyediakan metode tambahan yang memudahkan untuk bekerja dengan data dalam format umum. Untuk menambahkan data dari format tertentu ke DataObject, gunakan metode Format yang sesuaiSet, seperti SetText. Untuk mengambil data dari format tertentu dari , pertama-tama DataObjectpanggil metode Format yang sesuai Contains (seperti ContainsText) untuk menentukan apakah DataObject berisi data dalam format tersebut, lalu panggil metode Format yang sesuai Get (seperti GetText) untuk mengambil data jika DataObject berisinya.

Catatan

Pertimbangan khusus mungkin diperlukan saat menggunakan format metafile dengan Clipboard. Karena keterbatasan dalam implementasi DataObject kelas saat ini, format metafile yang digunakan oleh .NET Framework mungkin tidak dikenali oleh aplikasi yang menggunakan format metafile yang lebih lama. Dalam hal ini, Anda harus beroperasi dengan antarmuka pemrograman aplikasi Win32 Clipboard (API).

Objek harus dapat diserialisasikan agar diletakkan di Papan Klip. Lihat System.Runtime.Serialization untuk informasi selengkapnya tentang serialisasi. Jika aplikasi target Anda memerlukan format data yang sangat spesifik, header yang ditambahkan ke data dalam proses serialisasi dapat mencegah aplikasi mengenali data Anda. Untuk mempertahankan format data Anda, tambahkan data Anda sebagai Byte array ke MemoryStream dan teruskan MemoryStream ke SetData metode .

Konstruktor

DataObject()

Menginisialisasi instans baru kelas DataObject.

DataObject(Object)

Menginisialisasi instans DataObject baru kelas dan menambahkan objek yang ditentukan ke dalamnya.

DataObject(String, Object)

Menginisialisasi instans DataObject baru kelas dan menambahkan objek yang ditentukan dalam format yang ditentukan.

Metode

ContainsAudio()

Menunjukkan apakah objek data berisi data dalam WaveAudio format .

ContainsFileDropList()

Menunjukkan apakah objek data berisi data yang dalam format atau dapat dikonversi ke format tersebut FileDrop .

ContainsImage()

Menunjukkan apakah objek data berisi data yang dalam format atau dapat dikonversi ke format tersebut Bitmap .

ContainsText()

Menunjukkan apakah objek data berisi data dalam UnicodeText format .

ContainsText(TextDataFormat)

Menunjukkan apakah objek data berisi data teks dalam format yang ditunjukkan oleh nilai yang ditentukan TextDataFormat .

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetAudioStream()

Mengambil aliran audio dari objek data.

GetData(String)

Mengembalikan data yang terkait dengan format data yang ditentukan.

GetData(String, Boolean)

Mengembalikan data yang terkait dengan format data yang ditentukan, menggunakan parameter konversi otomatis untuk menentukan apakah akan mengonversi data ke format.

GetData(Type)

Mengembalikan data yang terkait dengan format jenis kelas yang ditentukan.

GetDataPresent(String)

Menentukan apakah data yang disimpan dalam ini DataObject dikaitkan dengan, atau dapat dikonversi ke, format yang ditentukan.

GetDataPresent(String, Boolean)

Menentukan apakah ini DataObject berisi data dalam format yang ditentukan atau, secara opsional, berisi data yang dapat dikonversi ke format yang ditentukan.

GetDataPresent(Type)

Menentukan apakah data yang disimpan dalam ini DataObject dikaitkan dengan, atau dapat dikonversi ke, format yang ditentukan.

GetFileDropList()

Mengambil kumpulan nama file dari objek data.

GetFormats()

Mengembalikan daftar semua format yang disimpan data dalam ini DataObject dikaitkan dengan atau dapat dikonversi ke.

GetFormats(Boolean)

Mengembalikan daftar semua format yang disimpan data dalam ini DataObject dikaitkan dengan atau dapat dikonversi ke, menggunakan parameter konversi otomatis untuk menentukan apakah hanya mengambil format data asli atau semua format yang dapat dikonversi data.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetImage()

Mengambil gambar dari objek data.

GetText()

Mengambil data teks dari objek data dalam UnicodeText format .

GetText(TextDataFormat)

Mengambil data teks dari objek data dalam format yang ditunjukkan oleh nilai yang ditentukan TextDataFormat .

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
SetAudio(Byte[])

Byte Menambahkan array ke objek data dalam WaveAudio format setelah mengonversinya menjadi Stream.

SetAudio(Stream)

Stream Menambahkan ke objek data dalam WaveAudio format .

SetData(Object)

Menambahkan objek yang ditentukan ke DataObject menggunakan jenis objek sebagai format data.

SetData(String, Boolean, Object)

Menambahkan objek yang ditentukan ke DataObject menggunakan format yang ditentukan dan menunjukkan apakah data dapat dikonversi ke format lain.

SetData(String, Object)

Menambahkan objek yang ditentukan ke DataObject menggunakan format yang ditentukan.

SetData(Type, Object)

Menambahkan objek yang ditentukan ke DataObject menggunakan jenis yang ditentukan sebagai format.

SetFileDropList(StringCollection)

Menambahkan kumpulan nama file ke objek data dalam FileDrop format .

SetImage(Image)

Image Menambahkan ke objek data dalam Bitmap format.

SetText(String)

Menambahkan data teks ke objek data dalam UnicodeText format .

SetText(String, TextDataFormat)

Menambahkan data teks ke objek data dalam format yang ditunjukkan oleh nilai yang ditentukan TextDataFormat .

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

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

Membuat koneksi antara objek data dan sink penasihat. Metode ini dipanggil oleh objek yang mendukung sink penasihat dan memungkinkan sink penasihat untuk diberi tahu tentang perubahan dalam data objek.

IDataObject.DUnadvise(Int32)

Menghancurkan koneksi pemberitahuan yang telah dibuat sebelumnya.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Membuat objek yang dapat digunakan untuk menghitung koneksi penasihat saat ini.

IDataObject.EnumFormatEtc(DATADIR)

Membuat objek untuk menghitung FORMATETC struktur untuk objek data. Struktur ini digunakan dalam panggilan ke GetData(FORMATETC, STGMEDIUM) atau SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Menyediakan struktur standar FORMATETC yang secara logis setara dengan struktur yang lebih kompleks. Gunakan metode ini untuk menentukan apakah dua struktur yang berbeda FORMATETC akan mengembalikan data yang sama, menghilangkan kebutuhan akan penyajian duplikat.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Mendapatkan data dari objek data sumber. Metode GetData(FORMATETC, STGMEDIUM) , yang dipanggil oleh konsumen data, merender data yang dijelaskan dalam struktur yang ditentukan FORMATETC dan mentransfernya melalui struktur yang ditentukan STGMEDIUM . Pemanggil kemudian bertanggung jawab untuk merilis STGMEDIUM struktur.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Mendapatkan data dari objek data sumber. Metode ini, yang dipanggil oleh konsumen data, berbeda dari GetData(FORMATETC, STGMEDIUM) metode di mana pemanggil harus mengalokasikan dan membebaskan media penyimpanan yang ditentukan.

IDataObject.QueryGetData(FORMATETC)

Menentukan apakah objek data mampu merender data yang dijelaskan dalam FORMATETC struktur. Objek yang mencoba operasi tempel atau jatuhkan dapat memanggil metode ini sebelum memanggil GetData(FORMATETC, STGMEDIUM) untuk mendapatkan indikasi apakah operasi mungkin berhasil.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Mentransfer data ke objek yang mengimplementasikan metode ini. Metode ini dipanggil oleh objek yang berisi sumber data.

Berlaku untuk

Lihat juga