Clipboard.SetDataObject 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클립보드를 지운 다음 데이터를 추가합니다.
오버로드
SetDataObject(Object) |
클립보드를 지운 다음 비영구 데이터를 넣습니다. |
SetDataObject(Object, Boolean) |
클립보드를 지운 다음 해당 클립보드에 데이터를 배치하고 해당 애플리케이션을 끝낼 때 데이터가 클립보드에 남아 있어야 하는지 여부를 지정합니다. |
SetDataObject(Object, Boolean, Int32, Int32) |
클립보드를 지운 다음 시도 횟수 사이의 간격을 지정하여 지정된 횟수만큼 시스템 클립보드에 데이터를 배치하려고 시도하고 애플리케이션을 끝낸 후 선택적으로 클립보드에 데이터를 그대로 둡니다. |
SetDataObject(Object)
클립보드를 지운 다음 비영구 데이터를 넣습니다.
public:
static void SetDataObject(System::Object ^ data);
public static void SetDataObject (object data);
static member SetDataObject : obj -> unit
Public Shared Sub SetDataObject (data As Object)
매개 변수
- data
- Object
클립보드에 배치할 데이터입니다.
예외
데이터를 클립보드에 배치할 수 없는 경우. 이 예외는 일반적으로 다른 프로세스에서 클립보드를 사용하고 있는 경우 발생합니다.
현재 스레드가 STA(단일 스레드 아파트) 모드에 있지 않은 경우. STAThreadAttribute를 애플리케이션의 Main
메서드에 추가합니다.
data
값이 null
인 경우
예제
다음 코드 예제에서는 존재하지 않는 텍스트 데이터를 시스템 클립보드에 배치하는 데 사용합니다 SetDataObject . 메서드에서 button1_Click
선택한 텍스트가 복사되어 textBox1
클립보드에 붙여넣습니다. 메서드에서 button2_Click
정보는 클립보드에서 검색되고 에 표시됩니다 textBox2
. This code assumes button1
, button2
, textBox1
, and textBox2
have been created and placed on a form.
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
설명
데이터는 애플리케이션 종료 시 시스템 클립보드에서 삭제 됩니다.
이 메서드는 100밀리초 간격으로 데이터를 10번 설정하려고 시도하고 모든 시도가 실패하면 throw ExternalException 합니다.
참고
개체를 클립보드에 배치하려면 직렬화할 수 있어야 합니다. 직렬화할 수 없는 개체를 이 메서드에 전달하면 예외를 throw하지 않고 실패합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요.
클래스는 Clipboard STA(단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 메서드가 Main
특성으로 STAThreadAttribute 표시되어 있는지 확인합니다.
추가 정보
적용 대상
SetDataObject(Object, Boolean)
클립보드를 지운 다음 해당 클립보드에 데이터를 배치하고 해당 애플리케이션을 끝낼 때 데이터가 클립보드에 남아 있어야 하는지 여부를 지정합니다.
public:
static void SetDataObject(System::Object ^ data, bool copy);
public static void SetDataObject (object data, bool copy);
static member SetDataObject : obj * bool -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean)
매개 변수
- data
- Object
클립보드에 배치할 데이터입니다.
- copy
- Boolean
이 애플리케이션을 끝낸 후 데이터를 클립보드에 그대로 두려면 true
이고, 그렇지 않으면 false
입니다.
예외
데이터를 클립보드에 배치할 수 없는 경우. 이 예외는 일반적으로 다른 프로세스에서 클립보드를 사용하고 있는 경우 발생합니다.
현재 스레드가 STA(단일 스레드 아파트) 모드에 있지 않은 경우. STAThreadAttribute를 애플리케이션의 Main
메서드에 추가합니다.
data
값이 null
인 경우
예제
다음 메서드는 애플리케이션에서 실행 됩니다. 시스템 클립보드의 텍스트 상자에 선택한 텍스트 데이터의 영구 복사본을 배치합니다. 이 코드는 폼을 button1``textBox1``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, true );
}
else
{
textBox2->Text = "No text selected in textBox1";
}
}
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, true);
else
textBox2.Text = "No text selected in textBox1";
}
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, True)
Else
textBox2.Text = "No text selected in textBox1"
End If
End Sub
다른 애플리케이션에서는 다음 메서드 시스템 클립보드에서 텍스트를 검색 하 고 텍스트를 붙여 넣습니다 textBox2
합니다. 이 코드는 양식에 button2
만들어지고 배치된 것으로 가정합니다 textBox2
.
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 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 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
설명
경우는 copy
매개 변수는 false
, 데이터는 애플리케이션 종료 시 시스템 클립보드에서 삭제 됩니다.
이 메서드는 100밀리초 간격으로 데이터를 10번 설정하려고 시도하고 모든 시도가 실패하면 throw ExternalException 합니다.
참고
개체를 클립보드에 배치하려면 직렬화할 수 있어야 합니다. 직렬화할 수 없는 개체를 이 메서드에 전달하면 예외를 throw하지 않고 실패합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요.
클래스는 Clipboard STA(단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 메서드가 Main
특성으로 STAThreadAttribute 표시되어 있는지 확인합니다.
추가 정보
적용 대상
SetDataObject(Object, Boolean, Int32, Int32)
클립보드를 지운 다음 시도 횟수 사이의 간격을 지정하여 지정된 횟수만큼 시스템 클립보드에 데이터를 배치하려고 시도하고 애플리케이션을 끝낸 후 선택적으로 클립보드에 데이터를 그대로 둡니다.
public:
static void SetDataObject(System::Object ^ data, bool copy, int retryTimes, int retryDelay);
public static void SetDataObject (object data, bool copy, int retryTimes, int retryDelay);
static member SetDataObject : obj * bool * int * int -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean, retryTimes As Integer, retryDelay As Integer)
매개 변수
- data
- Object
클립보드에 배치할 데이터입니다.
- copy
- Boolean
이 애플리케이션을 끝낸 후 데이터를 클립보드에 그대로 두려면 true
이고, 그렇지 않으면 false
입니다.
- retryTimes
- Int32
클립보드에 데이터를 배치하려고 시도할 횟수입니다.
- retryDelay
- Int32
시도 간격을 나타내는 시간(밀리초)입니다.
예외
현재 스레드가 STA(단일 스레드 아파트) 모드에 있지 않은 경우. STAThreadAttribute를 애플리케이션의 Main
메서드에 추가합니다.
data
이(가) null
인 경우
데이터를 클립보드에 배치할 수 없는 경우. 이 예외는 일반적으로 다른 프로세스에서 클립보드를 사용하고 있는 경우 발생합니다.
설명
클립보드 다른 스레드나 애플리케이션을 사용 하 여 사용 중인 경우 클립보드에 데이터를 추가 하지 못할 수도 있습니다. 이 메서드는 클립보드 사용량이 많은 환경에서 이 문제를 해결하는 데 유용합니다.
경우는 copy
매개 변수는 false
, 데이터는 애플리케이션 종료 시 시스템 클립보드에서 삭제 됩니다.
참고
개체를 클립보드에 배치하려면 직렬화할 수 있어야 합니다. 직렬화할 수 없는 개체를 이 메서드에 전달하면 예외를 throw하지 않고 실패합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요.
클래스는 Clipboard STA(단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 메서드가 Main
특성으로 STAThreadAttribute 표시되어 있는지 확인합니다.