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
[<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
- 상속
-
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 데이터 전송을 위한 형식 독립적 메커니즘을 제공하는 인터페이스를 구현합니다.
DataObject 는 일반적으로 끌어서 놓기 작업에서 및 와 함께 Clipboard 사용됩니다. 클래스는 DataObject 인터페이스의 권장 구현을 IDataObject 제공합니다. 직접 구현 IDataObject 하는 대신 클래스를 DataObject 사용하는 것이 좋습니다.
다양한 형식의 여러 데이터 조각을 에 DataObject저장할 수 있습니다. 데이터는 연결된 형식으로 DataObject 에서 검색됩니다. 대상 애플리케이션을 확인할 수 없는, 때문에 데이터의 데이터를 배치 하 여 애플리케이션에 대 한 적절 한 형식 될 가능성을 높일 수 있습니다는 DataObject 여러 형식에서입니다. 미리 정의된 형식은 를 참조 DataFormats 하세요. 클래스의 instance 만들어 고유한 형식을 구현할 DataFormats.Format 수 있습니다.
에 DataObject데이터를 저장하려면 생성자에 데이터를 전달하거나 를 호출 SetData합니다. 동일한 DataObject에 여러 형식의 데이터를 추가할 수 있습니다. 추가한 데이터를 네이티브 형식으로만 검색하려면 매개 변수를 autoConvert
로 설정하여 를 호출 SetData(String, Boolean, Object) 합니다false
.
와 호환GetData되는 모든 형식의 DataObject 에서 데이터를 검색할 수 있습니다. 예를 들어 텍스트를 유니코드로 변환할 수 있습니다. 저장된 형식으로 데이터를 검색하려면 매개 변수를 로 설정하여 autoConvert
를 호출 GetData 합니다false
.
데이터가 저장되는 형식을 확인하려면 를 호출 GetFormats합니다. 형식을 사용할 수 있는지 확인하려면 원하는 형식으로 를 호출 GetDataPresent 합니다.
.NET Framework 2.0 DataObject 에서 클래스는 공통 형식의 데이터를 더 쉽게 작업할 수 있는 추가 메서드를 제공합니다. 특정 형식DataObject의 데이터를 에 추가하려면 와 같은 SetText적절한 Set
Format 메서드를 사용합니다. 에서 DataObject특정 형식의 데이터를 검색하려면 먼저 적절한 Contains
Format 메서드(예: ContainsText)를 호출하여 에 해당 형식의 데이터가 포함되어 있는지 확인한 DataObject 다음 적절한 Get
Format 메서드(예: GetText)를 호출하여 데이터가 포함된 경우 DataObject 데이터를 검색합니다.
참고
클립보드와 함께 메타파일 형식을 사용하는 경우 특별한 고려 사항이 필요할 수 있습니다. 현재 구현에서 제한으로 인해는 DataObject 이전 메타 파일 형식을 사용 하는 애플리케이션에서 클래스를 사용 하는.NET Framework 메타 파일 형식을 인식할 수 없습니다. 이 경우에 Win32 클립보드 Api (애플리케이션 프로그래밍 인터페이스)를 사용 하 여 상호 운용 해야 합니다.
개체를 클립보드에 배치할 수 있도록 직렬화가 가능해야 합니다. serialization에 대한 자세한 내용은 를 참조하세요 System.Runtime.Serialization . 대상 애플리케이션 특정 데이터 형식에 필요한 경우 데이터 serialization 프로세스에 추가 된 헤더에는 애플리케이션에서 데이터를 인식 하지 못할 수 있습니다. 데이터 형식을 유지하려면 데이터를 에 배열 MemoryStream 로 Byte 추가하고 를 메서드에 SetData 전달 MemoryStream 합니다.
생성자
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) |
데이터 개체와 advise 싱크 간의 연결을 만듭니다. 이 메서드는 advise 싱크를 지원하는 개체에 의해 호출되며, advise 싱크가 개체의 데이터 변경 내용에 대한 알림을 받을 수 있도록 합니다. |
IDataObject.DUnadvise(Int32) |
이전에 설정된 알림 연결을 제거합니다. |
IDataObject.EnumDAdvise(IEnumSTATDATA) |
현재 advise 연결을 열거하는 데 사용할 수 있는 개체를 만듭니다. |
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) |
이 메서드를 구현하는 개체에 데이터를 전송합니다. 이 메서드는 데이터 소스가 들어 있는 개체에서 호출됩니다. |
적용 대상
추가 정보
.NET