다음을 통해 공유


Clipboard 클래스

정의

시스템 클립보드에서 데이터를 배치하고 검색하는 메서드를 제공합니다. 이 클래스는 상속될 수 없습니다.

public ref class Clipboard sealed
public ref class Clipboard abstract sealed
public sealed class Clipboard
public static class Clipboard
type Clipboard = class
Public NotInheritable Class Clipboard
Public Class Clipboard
상속
Clipboard

예제

다음 코드 예제에서는 메서드를 사용하여 Clipboard 데이터를 배치하고 시스템 클립보드에서 검색합니다. 이 코드에서는 button1, , button2textBox1textBox2 가 생성되어 양식에 배치되었다고 가정합니다.

메서드는 button1_Click 를 호출 SetDataObject 하여 텍스트 상자에서 선택한 텍스트를 가져와서 시스템 클립보드에 배치합니다.

메서드는 button2_Click 를 호출 GetDataObject 하여 시스템 클립보드에서 데이터를 검색합니다. 코드는 및 DataFormats 를 사용하여 IDataObject 반환된 데이터를 추출하고 에 데이터를 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

설명

클래스와 함께 Clipboard 사용할 미리 정의된 형식 목록은 클래스를 참조하세요 DataFormats .

를 호출 SetDataObject 하여 클립보드에 데이터를 배치하고 현재 내용을 바꿉니다. 데이터의 영구 복사본을 클립보드에 배치하려면 매개 변수를 copytrue설정합니다.

참고

여러 형식으로 클립보드에 데이터를 배치하려면 클래스 또는 구현을 IDataObject 사용합니다DataObject. 대상 애플리케이션을 모를 수 있는 형식 요구 사항에서 데이터를 검색할 수는 가능성을 최대화 하기 위해 여러 형식으로 클립보드에 데이터를 배치 합니다.

를 호출 GetDataObject 하여 클립보드에서 데이터를 검색합니다. 데이터는 인터페이스를 구현하는 개체로 반환됩니다 IDataObject . 에 지정된 IDataObject 메서드 및 의 DataFormats 필드를 사용하여 개체에서 데이터를 추출합니다. 검색한 데이터의 형식을 모르는 경우 인터페이스의 IDataObject 메서드를 GetFormats 호출하여 데이터가 저장된 모든 형식의 목록을 가져옵니다. 호출을 GetData 메서드는 IDataObject 인터페이스 및 애플리케이션이 사용할 수 있는 형식을 지정 합니다.

.NET Framework 2.0에서 클래스는 Clipboard 시스템 클립보드를 더 쉽게 작업할 수 있는 추가 메서드를 제공합니다. 메서드를 Clear 호출하여 클립보드에서 모든 데이터를 제거합니다. 클립보드에 특정 형식의 데이터를 추가하려면 기존 데이터를 대체하거나 와 같은 SetText적절한 SetFormat 메서드를 호출하거나 메서드를 SetData 호출하여 형식을 지정합니다. 클립보드에서 특정 형식의 데이터를 검색하려면 먼저 적절한 ContainsFormat 메서드(예: ContainsText) 메서드를 호출하여 클립보드에 해당 형식의 데이터가 포함되어 있는지 확인한 다음, 적절한 GetFormat 메서드(예: GetText)를 호출하여 클립보드에 데이터가 포함된 경우 데이터를 검색합니다. 이러한 작업에서 형식을 지정하려면 대신 및 GetData 메서드를 ContainsData 호출합니다.

참고

모든 Windows 기반 애플리케이션 다른 애플리케이션으로 전환 하는 경우 해당 내용이 변경 될 수 있으므로 시스템 클립보드를 공유 합니다.

개체를 클립보드에 배치할 수 있도록 직렬화가 가능해야 합니다. 직렬화할 수 없는 개체를 클립보드 메서드에 전달하면 예외를 throw하지 않고 메서드가 실패합니다. serialization에 대한 자세한 내용은 를 참조하세요 System.Runtime.Serialization . 대상 애플리케이션 특정 데이터 형식에 필요한 경우 데이터 serialization 프로세스에 추가 된 헤더에는 애플리케이션에서 데이터를 인식 하지 못할 수 있습니다. 데이터 형식을 유지하려면 데이터를 배열 MemoryStreamByte 추가하고 메서드에 을 SetData 전달 MemoryStream 합니다.

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

클립보드와 함께 메타파일 형식을 사용하는 경우 특별한 고려 사항이 필요할 수 있습니다. 현재 구현에서 제한으로 인해는 DataObject 이전 메타 파일 형식을 사용 하는 애플리케이션에서 클래스를 사용 하는.NET Framework 메타 파일 형식을 인식할 수 없습니다. 이 경우에 Win32 클립보드 Api (애플리케이션 프로그래밍 인터페이스)를 사용 하 여 상호 운용 해야 합니다.

메서드

Clear()

클립보드에서 데이터를 모두 제거합니다.

ContainsAudio()

WaveAudio 형식의 데이터가 클립보드에 있는지 여부를 나타냅니다.

ContainsData(String)

지정된 형식으로 되어 있거나 해당 형식으로 변환될 수 있는 데이터가 클립보드에 있는지 여부를 나타냅니다.

ContainsFileDropList()

FileDrop 형식으로 되어 있거나 해당 형식으로 변환될 수 있는 데이터가 클립보드에 있는지 여부를 나타냅니다.

ContainsImage()

Bitmap 형식으로 되어 있거나 해당 형식으로 변환될 수 있는 데이터가 클립보드에 있는지 여부를 나타냅니다.

ContainsText()

운영 체제에 따라 Text 또는 UnicodeText 형식의 데이터가 클립보드에 있는지 여부를 나타냅니다.

ContainsText(TextDataFormat)

지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터가 클립보드에 있는지 여부를 나타냅니다.

GetAudioStream()

클립보드에서 오디오 스트림을 검색합니다.

GetData(String)

클립보드에서 지정된 형식의 데이터를 검색합니다.

GetDataObject()

현재 시스템 클립보드에 있는 데이터를 검색합니다.

GetFileDropList()

클립보드에서 파일 이름의 컬렉션을 검색합니다.

GetImage()

클립보드에서 이미지를 검색합니다.

GetText()

운영 체제에 따라 Text 또는 UnicodeText 형식의 텍스트 데이터를 클립보드에서 검색합니다.

GetText(TextDataFormat)

지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터를 클립보드에서 검색합니다.

SetAudio(Byte[])

클립보드를 지운 다음 Byte 형식의 WaveAudio 배열을 Stream으로 변환한 다음 클립보드에 추가합니다.

SetAudio(Stream)

클립보드를 지운 다음 Stream 형식으로 WaveAudio을 추가합니다.

SetData(String, Object)

클립보드를 지운 다음 지정된 형식으로 데이터를 추가합니다.

SetDataObject(Object)

클립보드를 지운 다음 비영구 데이터를 넣습니다.

SetDataObject(Object, Boolean)

클립보드를 지운 다음 해당 클립보드에 데이터를 배치하고 해당 애플리케이션을 끝낼 때 데이터가 클립보드에 남아 있어야 하는지 여부를 지정합니다.

SetDataObject(Object, Boolean, Int32, Int32)

클립보드를 지운 다음 시도 횟수 사이의 간격을 지정하여 지정된 횟수만큼 시스템 클립보드에 데이터를 배치하려고 시도하고 애플리케이션을 끝낸 후 선택적으로 클립보드에 데이터를 그대로 둡니다.

SetFileDropList(StringCollection)

클립보드를 지운 다음 FileDrop 형식의 파일 이름 컬렉션을 추가합니다.

SetImage(Image)

클립보드를 지운 다음 Image 형식으로 Bitmap를 추가합니다.

SetText(String)

클립보드를 지운 다음 운영 체제에 따라 Text 또는 UnicodeText 형식의 텍스트 데이터를 클립보드에 추가합니다.

SetText(String, TextDataFormat)

클립보드를 지운 다음 지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터를 클립보드에 추가합니다.

적용 대상

추가 정보