Clipboard.GetDataObject 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 시스템 클립보드에 있는 데이터를 검색합니다.
public:
static System::Windows::Forms::IDataObject ^ GetDataObject();
public static System.Windows.Forms.IDataObject GetDataObject ();
public static System.Windows.Forms.IDataObject? GetDataObject ();
static member GetDataObject : unit -> System.Windows.Forms.IDataObject
Public Shared Function GetDataObject () As IDataObject
반환
현재 클립보드에 있는 데이터를 나타내는 IDataObject이거나, 클립보드에 데이터가 없으면 null
입니다.
예외
클립보드에서 데이터를 검색할 수 없는 경우. 이 예외는 일반적으로 다른 프로세스에서 클립보드를 사용하고 있는 경우 발생합니다.
현재 스레드가 STA(단일 스레드 아파트) 모드에 있지 않고 MessageLoop 속성 값이 true
인 경우. STAThreadAttribute를 애플리케이션의 Main
메서드에 추가합니다.
예제
다음 코드 예제에서는 메서드를 사용하여 Clipboard 시스템 클립보드에서 데이터를 배치하고 검색합니다. 이 코드는 button1
,를 button2``textBox1
가정하고 textBox2
양식에 배치되었습니다.
메서드는 button1_Click
텍스트 상자에서 선택한 텍스트를 가져와서 시스템 클립보드에 배치하기 위해 호출 SetDataObject 합니다.
메서드는 button2_Click
시스템 클립보드에서 데이터를 검색하기 위해 호출 GetDataObject 합니다. 코드는 반환된 데이터를 사용하고 IDataObject DataFormats 추출합니다. 데이터가 에 표시됩니다 textBox2
.
private:
void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Takes the selected text from a text box and puts it on the clipboard.
if ( !textBox1->SelectedText->Equals( "" ) )
{
Clipboard::SetDataObject( textBox1->SelectedText );
}
else
{
textBox2->Text = "No text selected in textBox1";
}
}
void button2_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject^ iData = Clipboard::GetDataObject();
// Determines whether the data is in a format you can use.
if ( iData->GetDataPresent( DataFormats::Text ) )
{
// Yes it is, so display it in a text box.
textBox2->Text = (String^)(iData->GetData( DataFormats::Text ));
}
else
{
// No it is not.
textBox2->Text = "Could not retrieve data off the clipboard.";
}
}
private void button1_Click(object sender, System.EventArgs e) {
// Takes the selected text from a text box and puts it on the clipboard.
if(textBox1.SelectedText != "")
Clipboard.SetDataObject(textBox1.SelectedText);
else
textBox2.Text = "No text selected in textBox1";
}
private void button2_Click(object sender, System.EventArgs e) {
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject iData = Clipboard.GetDataObject();
// Determines whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text)) {
// Yes it is, so display it in a text box.
textBox2.Text = (String)iData.GetData(DataFormats.Text);
}
else {
// No it is not.
textBox2.Text = "Could not retrieve data off the clipboard.";
}
}
Private Sub button1_Click(sender As Object, e As System.EventArgs)
' Takes the selected text from a text box and puts it on the clipboard.
If textBox1.SelectedText <> "" Then
Clipboard.SetDataObject(textBox1.SelectedText)
Else
textBox2.Text = "No text selected in textBox1"
End If
End Sub
Private Sub button2_Click(sender As Object, e As System.EventArgs)
' Declares an IDataObject to hold the data returned from the clipboard.
' Retrieves the data from the clipboard.
Dim iData As IDataObject = Clipboard.GetDataObject()
' Determines whether the data is in a format you can use.
If iData.GetDataPresent(DataFormats.Text) Then
' Yes it is, so display it in a text box.
textBox2.Text = CType(iData.GetData(DataFormats.Text), String)
Else
' No it is not.
textBox2.Text = "Could not retrieve data off the clipboard."
End If
End Sub
설명
클립보드에서 반환된 개체의 데이터 형식은 다를 수 있으므로 이 메서드는 데이터를 IDataObject반환합니다. 그런 다음 인터페이스의 메서드를 IDataObject 사용하여 적절한 데이터 형식의 데이터를 추출할 수 있습니다.
이 메서드는 100밀리초 간격으로 데이터를 10번 가져오기를 시도하고 모든 시도가 실패하면 throw ExternalException 합니다.
참고
클래스는 Clipboard STA(단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 메서드가 Main
특성으로 STAThreadAttribute 표시되어 있는지 확인합니다.