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

Örnekler

Aşağıdaki kod örneği, içinde DataObjectveri 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 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 metin kutusunda görüntülenir. Veri biçimi otomatik olarak metinden dizeye dönüştürülür. Bu kod 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

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

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

Farklı biçimlerdeki birden çok veri parçası içinde DataObjectdepolanabilir. Veriler, ilişkili biçimine göre bir'den 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 geçirin veya çağrısında bulunur SetData. 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ış SetData(String, Boolean, Object)olarak çağırın.autoConvertfalse

Ile uyumlu DataObjectherhangi bir GetData biçimde veri alınabilir. Örneğin, metin Unicode'a dönüştürülebilir. Verileri depolandığı biçimde almak için parametresi olarak ayarlanmış olarak GetDataçağırın.autoConvertfalse

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

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 Setuygun SetText yöntemini kullanın. 'den DataObjectbelirli bir biçimin verilerini almak için, önce uygun ContainsFormat yöntemini (örneğinContainsText) çağırarak verilerin bu biçimde içerip içermediğini DataObject belirleyin, ardından verileri içeriyorsa almak Get için uygun GetText yöntemini (örneğinDataObject) çağırın.

Note

Pano ile meta dosyası biçimi kullanılırken dikkat edilmesi gereken özel noktalar olabilir. DataObject sınıfının geçerli uygulamasındaki 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 belirli 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 dizinine MemoryStream ekleyin ve yöntemine MemoryStream geçirinSetData.

Oluşturucular

Name Description
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

Name Description
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 veya bu FileDrop biçime dönüştürülebileceğini gösterir.

ContainsImage()

Veri nesnesinin biçimindeki verileri içerip içermediğini veya bu Bitmap 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, Boolean)
Geçersiz.

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(String)
Geçersiz.

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

GetData(Type)
Geçersiz.

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

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(String)

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

GetDataPresent(Type)

Bu DataObject dosyada depolanan verilerin belirtilen biçimle ilişkilendirilip ilişkilendirilmeyeceğini 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şkili olduğu 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()

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

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

Geçerli Objectbasit 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 Stream biçiminde bir WaveAudio 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)

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

SetDataAsJson<T>(String, T)

Temel bir veri aktarım mekanizması uygular.

SetDataAsJson<T>(T)

Temel bir veri aktarım mekanizması uygular.

SetFileDropList(StringCollection)

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

SetImage(Image)

Veri nesnesine Image biçiminde bir Bitmap ekler.

SetText(String, TextDataFormat)

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

SetText(String)

Veri nesnesine UnicodeText biçiminde metin verileri ekler.

ToString()

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

(Devralındığı yer: Object)
TryGetData<T>(String, Boolean, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(String, Func<TypeName,Type>, Boolean, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(String, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(T)

Temel bir veri aktarım mekanizması uygular.

TryGetDataCore<T>(String, Func<TypeName,Type>, Boolean, T)

Temel bir veri aktarım mekanizması uygular.

Belirtik Arabirim Kullanımları

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

Veri nesnesi ile danışmanlık havuzu arasında bir bağlantı oluşturur. Bu yöntem, bir 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 GetData(FORMATETC, STGMEDIUM)çağrılarında SetData(FORMATETC, STGMEDIUM, Boolean) 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. Bir GetData(FORMATETC, STGMEDIUM) veri tüketicisi tarafından çağrılan yöntemi, belirtilen FORMATETC yapıda açıklanan verileri işler ve belirtilen STGMEDIUM 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. 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.

Uzantı Metotları

Name Description
TryGetData<T>(IDataObject, String, Boolean, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(IDataObject, String, Func<TypeName,Type>, Boolean, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(IDataObject, String, T)

Temel bir veri aktarım mekanizması uygular.

TryGetData<T>(IDataObject, T)

Temel bir veri aktarım mekanizması uygular.

Şunlara uygulanır

Ayrıca bkz.