다음을 통해 공유


Clipboard.SetDataObject 메서드

정의

클립보드를 지운 다음 데이터를 추가합니다.

오버로드

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인 경우

retryTimes가 0보다 작은 경우

또는 retryDelay가 0보다 작은 경우

데이터를 클립보드에 배치할 수 없는 경우. 이 예외는 일반적으로 다른 프로세스에서 클립보드를 사용하고 있는 경우 발생합니다.

설명

클립보드 다른 스레드나 애플리케이션을 사용 하 여 사용 중인 경우 클립보드에 데이터를 추가 하지 못할 수도 있습니다. 이 메서드는 클립보드 사용량이 많은 환경에서 이 문제를 해결하는 데 유용합니다.

경우는 copy 매개 변수는 false, 데이터는 애플리케이션 종료 시 시스템 클립보드에서 삭제 됩니다.

참고

개체를 클립보드에 배치하려면 직렬화할 수 있어야 합니다. 직렬화할 수 없는 개체를 이 메서드에 전달하면 예외를 throw하지 않고 실패합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요.

클래스는 Clipboard STA(단일 스레드 아파트) 모드로 설정된 스레드에서만 사용할 수 있습니다. 이 클래스를 사용하려면 메서드가 Main 특성으로 STAThreadAttribute 표시되어 있는지 확인합니다.

추가 정보

적용 대상