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 사용하는 것이 좋습니다.
다양한 형식의 여러 데이터 조각을 에 저장할 DataObject수 있습니다. 데이터는 연결된 형식으로 DataObject 검색됩니다. 대상 애플리케이션을 알 수 없으므로 데이터를 여러 형식으로 배치 DataObject 하여 데이터가 애플리케이션에 적합한 형식이 될 가능성을 높일 수 있습니다. 미리 정의된 형식은 참조 DataFormats 하세요. 클래스의 인스턴스를 만들어 고유한 형식을 구현할 DataFormats.Format 수 있습니다.
데이터를 저장 DataObject하려면 생성자에 데이터를 전달하거나 호출 SetData합니다. 여러 형식의 데이터를 동일한 DataObject형식으로 추가할 수 있습니다. 추가한 데이터를 네이티브 형식으로만 검색하려면 매개 변수를
와 호환GetData되는 모든 형식으로 DataObject 데이터를 검색할 수 있습니다. 예를 들어 텍스트를 유니코드로 변환할 수 있습니다. 저장된 형식으로 데이터를 검색하려면 매개 변수를
데이터가 저장되는 형식을 확인하려면 다음을 호출 GetFormats합니다. 형식을 사용할 수 있는지 확인하려면 원하는 형식으로 호출 GetDataPresent 합니다.
이 클래스는 DataObject 공통 형식의 데이터를 더 쉽게 작업할 수 있는 추가 메서드를 제공합니다. 특정 형식DataObject의 데이터를 추가하려면 다음과 같은 SetText적절한 SetFormat 메서드를 사용합니다. 특정 형식 DataObject의 데이터를 검색하려면 먼저 적절한 ContainsFormat 메서드(예: ContainsText)를 호출하여 해당 형식의 데이터를 포함하는지 여부를 DataObject 확인한 다음 적절한 GetFormat 메서드(예: GetText)를 호출하여 데이터가 포함된 경우 DataObject 데이터를 검색합니다.
메모
클립보드와 함께 메타파일 형식을 사용하는 경우 특별한 고려 사항이 필요할 수 있습니다. DataObject 클래스의 현재 구현에 제한이 있으므로 .NET Framework에서 사용하는 메타파일 형식은 이전 메타파일 형식을 사용하는 애플리케이션에서 인식할 수 없습니다. 이 경우 Win32 API(클립보드 애플리케이션 프로그래밍 인터페이스)와 상호 운용해야 합니다.
개체를 클립보드에 배치할 수 있도록 직렬화가 가능해야 합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요. 대상 애플리케이션에 매우 구체적인 데이터 형식이 필요한 경우 serialization 프로세스의 데이터에 추가된 헤더로 인해 애플리케이션이 데이터를 인식하지 못할 수 있습니다. 데이터 형식을 유지하려면 데이터를 배열 MemoryStream 로 Byte 추가하고 메서드에 MemoryStreamSetData 전달합니다.
생성자
| Name | Description |
|---|---|
| DataObject() |
DataObject 클래스의 새 인스턴스를 초기화합니다. |
| DataObject(Object) |
클래스의 새 인스턴스를 DataObject 초기화하고 지정된 개체를 추가합니다. |
| DataObject(String, Object) |
클래스의 새 인스턴스를 DataObject 초기화하고 지정된 개체를 지정된 형식으로 추가합니다. |
메서드
| Name | Description |
|---|---|
| ContainsAudio() |
데이터 개체에 형식의 데이터가 WaveAudio 포함되어 있는지 여부를 나타냅니다. |
| ContainsFileDropList() |
데이터 개체에 형식이 있거나 해당 형식으로 변환할 수 있는 FileDrop 데이터가 포함되어 있는지 여부를 나타냅니다. |
| ContainsImage() |
데이터 개체에 형식이 있거나 해당 형식으로 변환할 수 있는 Bitmap 데이터가 포함되어 있는지 여부를 나타냅니다. |
| ContainsText() |
데이터 개체에 형식의 데이터가 UnicodeText 포함되어 있는지 여부를 나타냅니다. |
| ContainsText(TextDataFormat) |
데이터 개체에 지정된 TextDataFormat 값으로 표시된 형식의 텍스트 데이터가 포함되어 있는지 여부를 나타냅니다. |
| Equals(Object) |
지정한 개체와 현재 개체가 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
| GetAudioStream() |
데이터 개체에서 오디오 스트림을 검색합니다. |
| GetData(String, Boolean) |
자동화된 변환 매개 변수를 사용하여 지정된 데이터 형식과 연결된 데이터를 반환하여 데이터를 형식으로 변환할지 여부를 결정합니다. |
| GetData(String) |
지정된 데이터 형식과 연결된 데이터를 반환합니다. |
| GetData(Type) |
지정된 클래스 형식 형식과 연결된 데이터를 반환합니다. |
| GetDataPresent(String, Boolean) |
지정된 형식의 데이터가 포함되는지 또는 필요에 따라 지정된 형식으로 변환할 수 있는 데이터를 포함하는지 여부를 DataObject 결정합니다. |
| GetDataPresent(String) |
이 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, TextDataFormat) |
지정한 TextDataFormat 값으로 표시된 형식으로 데이터 개체에 텍스트 데이터를 추가합니다. |
| SetText(String) |
데이터 개체에 텍스트 데이터를 형식으로 UnicodeText 추가합니다. |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| 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 구조를 제공합니다. 이 메서드를 사용하여 두 구조 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) |
이 메서드를 구현하는 개체로 데이터를 전송합니다. 이 메서드는 데이터 원본을 포함 하는 개체에 의해 호출 됩니다. |