DataObject Sınıf

Tanım

Temel bir veri aktarım mekanizması uygular.

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
Devralma
DataObject
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği içindeki DataObjectverileri ekler. İlk olarak, yeni DataObject bir oluşturulur ve içinde bir bileşen depolanır. Ardından, uygun türdeki verilerin içinde DataObjectmevcut olup olmadığını denetler. Sonuç bir metin kutusunda görüntülenir. Bu kod, bunun oluşturulmasını gerektirir textBox1 .

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

Sonraki örnek, içinde DataObjectdepolanan verileri alır. İlk olarak, metin verileriyle yeni DataObject bir oluşturulur. Ardından veriler alınır ve biçimi dize olarak belirtilir ve bir metin kutusunda görüntülenir. Veri biçimi otomatik olarak metinden dizeye dönüştürülür. Bu kod, bunun oluşturulmasını gerektirir textBox1 .

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

Açıklamalar

DataObjectIDataObject, yöntemleri veri aktarımı için biçimden bağımsız bir mekanizma sağlayan arabirimini uygular.

A DataObject genellikle ve ile Clipboard sürükle ve bırak işlemlerinde kullanılır. DataObject sınıfı, arabiriminin önerilen uygulamasını IDataObject sağlar. Kendinizi uygulamak IDataObject yerine sınıfını DataObject kullanmanız önerilir.

Içinde farklı biçimlerde birden çok veri parçası depolanabilir DataObject. Veriler, ilişkili biçimine göre a'dan DataObject alınır. Hedef uygulama bilinmediğinden, verileri birden çok biçime yerleştirerek DataObject verilerin bir uygulama için uygun biçimde olma olasılığını artırabilirsiniz. Önceden tanımlanmış biçimler için bkz DataFormats . sınıfının bir örneğini DataFormats.Format oluşturarak kendi biçiminizi uygulayabilirsiniz.

Bir içinde DataObjectveri depolamak için, verileri oluşturucuya veya çağrısına SetDatageçirin. Aynı DataObjectöğesine birden çok biçimde veri ekleyebilirsiniz. Eklediğiniz verilerin yalnızca yerel biçiminde alınmasını istiyorsanız parametresi olarak ayarlanmış falseolarak çağırın.SetData(String, Boolean, Object)autoConvert

Veri, ile GetDatauyumlu olan herhangi bir biçimde bir DataObject içinden alınabilir. Örneğin, metin Unicode'a dönüştürülebilir. Verileri depolandığı biçimde almak için parametresi olarak ayarlanmış falseolarak çağırın.GetDataautoConvert

Verilerin hangi biçimlerde depolandığını belirlemek için çağrısında bulunur GetFormats. Bir biçimin kullanılabilir olup olmadığını belirlemek için istediğiniz biçimle çağrısı GetDataPresent yapın.

.NET Framework 2.0'da sınıfı, DataObject verilerle ortak biçimlerde çalışmayı kolaylaştıran ek yöntemler sağlar. öğesine belirli bir biçimde veri eklemek için DataObjectgibi SetTextuygun SetFormat yöntemini kullanın. 'dan DataObjectbelirli bir biçimin verilerini almak için, önce uygun ContainsFormat yöntemini (örneğinContainsText) çağırarak bu biçimde veri içerip içermediğini DataObject belirleyin, ardından verileri içeriyorsa almak DataObject için uygun GetFormat yöntemini (örneğinGetText) çağırın.

Not

Pano ile meta dosyası biçimi kullanılırken dikkat edilmesi gereken özel noktalar olabilir. Sınıfın geçerli uygulamasındaki DataObject bir sınırlama nedeniyle, .NET Framework tarafından kullanılan meta dosyası biçimi eski bir meta dosyası biçimi kullanan uygulamalar tarafından tanınmayabilir. Bu durumda, Win32 Pano uygulaması programlama arabirimleri (API' ler) ile birlikte çalışmanız gerekir.

Bir nesnenin Pano'ya konulabilmesi için seri hale getirilebilir olması gerekir. Serileştirme hakkında daha fazla bilgi için bkz System.Runtime.Serialization . Hedef uygulamanız çok özel bir veri biçimi gerektiriyorsa, serileştirme işleminde verilere eklenen üst bilgiler uygulamanın verilerinizi tanımasını engelleyebilir. Veri biçiminizi korumak için, verilerinizi bir Byte dizisi MemoryStream olarak ekleyin ve yöntemine SetData geçirinMemoryStream.

Oluşturucular

DataObject()

DataObject sınıfının yeni bir örneğini başlatır.

DataObject(Object)

sınıfının yeni bir örneğini DataObject başlatır ve belirtilen nesneyi buna ekler.

DataObject(String, Object)

sınıfının yeni bir örneğini DataObject başlatır ve belirtilen nesneyi belirtilen biçimde ekler.

Yöntemler

ContainsAudio()

Veri nesnesinin biçiminde veri WaveAudio içerip içermediğini gösterir.

ContainsFileDropList()

Veri nesnesinin biçimindeki verileri içerip içermediğini FileDrop veya bu biçime dönüştürülebileceğini gösterir.

ContainsImage()

Veri nesnesinin biçimindeki verileri içerip içermediğini Bitmap veya bu biçime dönüştürülebileceğini gösterir.

ContainsText()

Veri nesnesinin biçiminde veri UnicodeText içerip içermediğini gösterir.

ContainsText(TextDataFormat)

Veri nesnesinin, belirtilen TextDataFormat değerle belirtilen biçimde metin verileri içerip içermediğini gösterir.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetAudioStream()

Veri nesnesinden bir ses akışı alır.

GetData(String)

Belirtilen veri biçimiyle ilişkili verileri döndürür.

GetData(String, Boolean)

Verilerin biçime dönüştürülip dönüştürülmeyeceğini belirlemek için otomatik dönüştürme parametresini kullanarak belirtilen veri biçimiyle ilişkili verileri döndürür.

GetData(Type)

Belirtilen sınıf türü biçimiyle ilişkili verileri döndürür.

GetDataPresent(String)

Bu DataObject dosyada depolanan verilerin belirtilen biçimle ilişkili olup olmadığını veya bu biçime dönüştürülebileceğini belirler.

GetDataPresent(String, Boolean)

Bunun DataObject belirtilen biçimde veri içerip içermediğini veya isteğe bağlı olarak, belirtilen biçime dönüştürülebilecek verileri içerip içermediğini belirler.

GetDataPresent(Type)

Bu DataObject dosyada depolanan verilerin belirtilen biçimle ilişkili olup olmadığını veya bu biçime dönüştürülebileceğini belirler.

GetFileDropList()

Veri nesnesinden dosya adları koleksiyonunu alır.

GetFormats()

Bu DataObject dosyada depolanan verilerin ilişkili olduğu veya dönüştürülebileceği tüm biçimlerin listesini döndürür.

GetFormats(Boolean)

Yalnızca yerel veri biçimlerinin mi yoksa verilerin dönüştürülebileceği tüm biçimlerin mi alınıp alınmayacağını belirlemek için otomatik dönüştürme parametresini kullanarak, bu DataObject dosyada depolanan verilerin ilişkilendirilebileceği veya dönüştürülebileceği tüm biçimlerin listesini döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetImage()

Veri nesnesinden bir görüntü alır.

GetText()

Veri nesnesinden UnicodeText biçimindeki metin verilerini alır.

GetText(TextDataFormat)

Veri nesnesinden metin verilerini belirtilen TextDataFormat değerle belirtilen biçimde alır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
SetAudio(Byte[])

Byte veri nesnesine WaveAudio dönüştürdükten sonra biçiminde bir Streamdizi ekler.

SetAudio(Stream)

Veri nesnesine WaveAudio biçiminde bir Stream ekler.

SetData(Object)

Veri biçimi olarak nesne DataObject türünü kullanarak belirtilen nesneyi öğesine ekler.

SetData(String, Boolean, Object)

Belirtilen biçimi kullanarak belirtilen nesnesini DataObject öğesine ekler ve verilerin başka bir biçime dönüştürülip dönüştürülemeyeceğini belirtir.

SetData(String, Object)

Belirtilen biçimi kullanarak belirtilen nesnesini öğesine DataObject ekler.

SetData(Type, Object)

Belirtilen türü biçim olarak kullanarak belirtilen nesnesini DataObject öğesine ekler.

SetFileDropList(StringCollection)

Veri nesnesine FileDrop biçiminde bir dosya adları koleksiyonu ekler.

SetImage(Image)

Veri nesnesine Bitmap biçiminde bir Image ekler.

SetText(String)

Veri nesnesine UnicodeText biçiminde metin verileri ekler.

SetText(String, TextDataFormat)

Veri nesnesine, belirtilen TextDataFormat değerle belirtilen biçimde metin verileri ekler.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Veri nesnesi ile danışmanlık havuzu arasında bir bağlantı oluşturur. Bu yöntem, danışmanlık havuzu destekleyen bir nesne tarafından çağrılır ve öneri havuzuna nesnenin verilerindeki değişikliklerle ilgili bildirim verilmesini sağlar.

IDataObject.DUnadvise(Int32)

Daha önce oluşturulmuş bir bildirim bağlantısını yok eder.

IDataObject.EnumDAdvise(IEnumSTATDATA)

Geçerli danışmanlık bağlantılarını listelemek için kullanılabilecek bir nesne oluşturur.

IDataObject.EnumFormatEtc(DATADIR)

Veri nesnesinin yapılarını numaralandırmak FORMATETC için bir nesne oluşturur. Bu yapılar veya SetData(FORMATETC, STGMEDIUM, Boolean)çağrılarında GetData(FORMATETC, STGMEDIUM) kullanılır.

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

Mantıksal olarak daha karmaşık bir yapıya eşdeğer standart FORMATETC bir yapı sağlar. Yinelenen işleme gereksinimini ortadan kaldırarak iki farklı FORMATETC yapının aynı verileri döndürip döndürmeyeceğini belirlemek için bu yöntemi kullanın.

IDataObject.GetData(FORMATETC, STGMEDIUM)

Bir kaynak veri nesnesinden veri alır. GetData(FORMATETC, STGMEDIUM) Veri tüketicisi tarafından çağrılan yöntemi, belirtilen yapıda açıklanan verileri işler ve belirtilen FORMATETCSTGMEDIUM yapı üzerinden aktarır. Ardından çağıran, yapıyı STGMEDIUM serbest bırakma sorumluluğunu üstlenir.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

Bir kaynak veri nesnesinden veri alır. Bir veri tüketicisi tarafından çağrılan bu yöntem, çağıranın belirtilen depolama medyasını GetData(FORMATETC, STGMEDIUM) ayırması ve boşaltması gereken yönteminden farklıdır.

IDataObject.QueryGetData(FORMATETC)

Veri nesnesinin yapıda FORMATETC açıklanan verileri işleyip işleyemeyeceğini belirler. Yapıştırma veya bırakma işlemine çalışan nesneler, işlemin başarılı olup olmadığının bir göstergesini almak için çağırmadan GetData(FORMATETC, STGMEDIUM) önce bu yöntemi çağırabilir.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

Verileri bu yöntemi uygulayan nesneye aktarır. Bu yöntem, veri kaynağı içeren bir nesne tarafından çağrılır.

Şunlara uygulanır

Ayrıca bkz.