DataObject クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
基本データ転送機構を実装します。
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
- 継承
-
DataObject
- 属性
- 実装
例
次のコード例では、 DataObject. まず、新 DataObject しいコンポーネントが作成され、コンポーネントが格納されます。 次に、適切な型 DataObjectのデータが . 結果がテキスト ボックスに表示されます。 このコードでは、作成済みである 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
次の例では、 DataObject. まず、テキスト データを含む新しい DataObject データが作成されます。 次に、データが取得され、その形式が文字列として指定され、テキスト ボックスに表示されます。 データ形式は、テキストから文字列に自動的に変換されます。 このコードでは、作成済みである 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
注釈
DataObject はインターフェイスを IDataObject 実装し、そのメソッドはデータ転送の形式に依存しないメカニズムを提供します。
A DataObject は通常、ドラッグ アンド ドロップ操作と共 Clipboard に使用されます。 このクラスは DataObject 、インターフェイスの推奨実装を IDataObject 提供します。 自分で実装IDataObjectするのではなく、クラスをDataObject使用することをお勧めします。
異なる形式の複数のデータを 1 つのデータに DataObject格納できます。 データは、関連付けられている形式によって取得されます DataObject 。 ターゲット アプリケーションが不明な場合があるため、データを複数の形式に配置することで、アプリケーションに適した形式になる可能性を DataObject 高めることができます。 定義済みの形式を参照してください DataFormats 。 クラスのインスタンスを作成することで、独自の形式を DataFormats.Format 実装できます。
データを DataObject格納するには、コンストラクターにデータを渡すか、呼び出します SetData。 同じ DataObject形式のデータを複数の形式で追加できます。 追加したデータをネイティブ形式でのみ取得する場合は、パラメーターを にfalse設定してautoConvert呼び出しますSetData(String, Boolean, Object)。
データは、と互換性のあるGetData任意のDataObject形式で取得できます。 たとえば、テキストを Unicode に変換できます。 格納された形式でデータを取得するには、GetDataパラメーターfalseを autoConvert .
データが格納されている形式を確認するには、次を呼び出します GetFormats。 フォーマットが使用可能かどうかを判断するには、目的の形式で呼び出します GetDataPresent 。
.NET Framework 2.0 では、クラスには、DataObject一般的な形式のデータの操作を容易にする追加のメソッドが用意されています。 特定の形式のデータを DataObject追加するには、適切な SetFormat メソッド (例: SetText. 特定の形式 DataObjectのデータを取得するには、最初に適切な ContainsFormat メソッド (など ContainsText) を呼び出して、その形式のデータが含まれているかどうかを DataObject 判断してから、適切な GetFormat メソッド (など GetText) を呼び出して、データが含まれている場合はデータを DataObject 取得します。
注意
クリップボードでメタファイル形式を使用する場合は、特別な考慮事項が必要になる場合があります。 クラスの現在のDataObject実装に制限があるため、.NET Frameworkで使用されるメタファイル形式は、古いメタファイル形式を使用するアプリケーションでは認識されない場合があります。 この場合は、Win32 クリップボード アプリケーション プログラミング インターフェイス (API) と相互運用する必要があります。
オブジェクトをクリップボードに格納するには、それがシリアル化できる必要があります。 シリアル化の詳細については、以下を参照してください System.Runtime.Serialization 。 ターゲット アプリケーションで非常に特定のデータ形式が必要な場合、シリアル化プロセスでデータに追加されたヘッダーによって、アプリケーションがデータを認識できなくなる可能性があります。 データ形式を保持するには、配列としてデータを Byte a にMemoryStream追加し、メソッドにMemoryStreamSetData渡します。
コンストラクター
| DataObject() |
DataObject クラスの新しいインスタンスを初期化します。 |
| DataObject(Object) |
DataObject クラスの新しいインスタンスを初期化し、指定したオブジェクトを追加します。 |
| DataObject(String, Object) |
DataObject クラスの新しいインスタンスを初期化し、指定したオブジェクトを指定した形式で追加します。 |
メソッド
| ContainsAudio() |
データ オブジェクトに WaveAudio 形式のデータが含まれているかどうかを示します。 |
| ContainsFileDropList() |
データ オブジェクトに FileDrop 形式のデータか、その形式に変換できるデータが含まれているかどうかを示します。 |
| ContainsImage() |
データ オブジェクトに Bitmap 形式のデータか、その形式に変換できるデータが含まれているかどうかを示します。 |
| ContainsText() |
データ オブジェクトに UnicodeText 形式のデータが含まれているかどうかを示します。 |
| ContainsText(TextDataFormat) |
指定した TextDataFormat 値で示される形式のテキスト データが、データ オブジェクトに含まれているかどうかを示します。 |
| Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetAudioStream() |
データ オブジェクトからオーディオ ストリームを取得します。 |
| GetData(String) |
指定したデータ形式に関連付けられたデータを返します。 |
| GetData(String, Boolean) |
データを指定形式に変換するかどうかを判断するための自動変換パラメーターを使用して、指定したデータ形式に関連付けられているデータを返します。 |
| GetData(Type) |
指定したクラス型形式に関連付けられたデータを返します。 |
| GetDataPresent(String) |
この DataObject に格納されているデータが、指定した形式と関連付けられているかどうかや、その形式に変換できるかどうかを確認します。 |
| GetDataPresent(String, Boolean) |
指定した形式のデータがこの DataObject に含まれているかどうかを確認し、オプションで、指定した形式に変換できるデータが含まれているかどうかも確認します。 |
| GetDataPresent(Type) |
この DataObject に格納されているデータが、指定した形式と関連付けられているかどうかや、その形式に変換できるかどうかを確認します。 |
| GetFileDropList() |
ファイル名のコレクションをデータ オブジェクトから取得します。 |
| GetFormats() |
この DataObject に格納されたデータに関連付けられているすべての形式、または変換できるすべての形式のリストを返します。 |
| GetFormats(Boolean) |
自動変換パラメーターを使用して、ネイティブのデータ形式だけを取得するのか、またはデータを変換することができるすべての形式を取得するのかを決定し、この DataObject に格納されているデータに関連付けられている形式、あるいは変換できるすべての形式のリストを返します。 |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetImage() |
データ オブジェクトからイメージを取得します。 |
| GetText() |
データ オブジェクトから UnicodeText 形式でテキスト データを取得します。 |
| GetText(TextDataFormat) |
データ オブジェクトから、指定した TextDataFormat 値で示される形式でテキスト データを取得します。 |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
| SetAudio(Byte[]) | |
| SetAudio(Stream) | |
| SetData(Object) |
オブジェクト型をデータ形式として使用して、指定したオブジェクトを DataObject に追加します。 |
| SetData(String, Boolean, Object) |
形式を指定し、データを別形式に変換できるかどうかを指定して、指定したオブジェクトを DataObject に追加します。 |
| SetData(String, Object) |
形式を指定して、指定したオブジェクトを DataObject に追加します。 |
| SetData(Type, Object) |
指定した型を形式として使用して、指定したオブジェクトを DataObject に追加します。 |
| SetFileDropList(StringCollection) |
データ オブジェクトに FileDrop 形式でファイル名のコレクションを追加します。 |
| SetImage(Image) | |
| SetText(String) |
データ オブジェクトに UnicodeText 形式でテキスト データを追加します。 |
| SetText(String, TextDataFormat) |
データ オブジェクトに、指定した TextDataFormat 値で示される形式でテキスト データを追加します。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) |
データ オブジェクトとアドバイズ シンク間の接続を作成します。 このメソッドは、アドバイズ シンクをサポートするオブジェクトによって呼び出され、オブジェクトのデータの変更をアドバイズ シンクに通知できるようにします。 |
| IDataObject.DUnadvise(Int32) |
以前に確立されていた通知の接続を破棄します。 |
| IDataObject.EnumDAdvise(IEnumSTATDATA) |
現在のアドバイザリ コネクションを列挙するために使用できるオブジェクトを作成します。 |
| IDataObject.EnumFormatEtc(DATADIR) |
データ オブジェクトの FORMATETC 構造体を列挙するためのオブジェクトを作成します。 これらの構造体は、GetData(FORMATETC, STGMEDIUM) または SetData(FORMATETC, STGMEDIUM, Boolean) の呼び出しで使用されます。 |
| IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) |
より複雑な構造体と論理的に等価な、標準の FORMATETC 構造体を提供します。 このメソッドを使用して、2 つの異なる FORMATETC 構造体が同一のデータを返すかどうかを確認し、表示を二重化する必要をなくします。 |
| IDataObject.GetData(FORMATETC, STGMEDIUM) |
ソース データ オブジェクトからデータを取得します。 GetData(FORMATETC, STGMEDIUM) メソッドは、データ コンシューマーによって呼び出され、指定された FORMATETC 構造体に記述されているデータを表示し、指定された STGMEDIUM 構造体を使用してそのデータを転送します。 呼び出し元は、その後で STGMEDIUM 構造体を解放する必要があります。 |
| IDataObject.GetDataHere(FORMATETC, STGMEDIUM) |
ソース データ オブジェクトからデータを取得します。 このメソッドはデータ コンシューマーによって呼び出され、呼び出し元が、指定したストレージ メディアを割り当て、解放する必要があるという点で GetData(FORMATETC, STGMEDIUM) メソッドとは異なります。 |
| IDataObject.QueryGetData(FORMATETC) |
データ オブジェクトが、FORMATETC 構造体で記述されているデータを表示できるかどうかを確認します。 貼り付け操作またはドロップ操作をしようとしているオブジェクトは、GetData(FORMATETC, STGMEDIUM) を呼び出す前にこのメソッドを呼び出して、操作が正常に実行できるかどうかを示す値を取得できます。 |
| IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) |
このメソッドを実装するオブジェクトにデータを転送します。 このメソッドは、データ ソースを格納しているオブジェクトから呼び出されます。 |