Clipboard Klasa

Definicja

Udostępnia metody umieszczania danych na schowku systemowym i pobierania ich z schowka. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
Clipboard

Przykłady

Poniższy przykład kodu używa Clipboard metod umieszczania danych w schowku systemu i pobierania ich z schowka systemowego. W tym kodzie przyjęto założeniebutton1, że zostały utworzone i button2textBox1textBox2 umieszczone w formularzu.

Metoda button1_Click wywołuje metodę SetDataObject , aby pobrać zaznaczony tekst z pola tekstowego i umieścić go w schowku systemowym.

Metoda button2_Click wywołuje metodę GetDataObject pobierania danych ze Schowka systemowego. Kod używa IDataObject metody i DataFormats wyodrębnia zwróconych danych i wyświetla dane w pliku 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

Uwagi

Aby uzyskać listę wstępnie zdefiniowanych formatów do użycia z klasą Clipboard , zobacz klasę DataFormats .

Wywołaj metodę SetDataObject , aby umieścić dane w Schowku, zastępując jego bieżącą zawartość. Aby umieścić trwałą kopię danych w Schowku, ustaw copy parametr na true.

Uwaga

Aby umieścić dane w Schowku w wielu formatach, użyj DataObject klasy lub implementacji IDataObject . Umieść dane w Schowku w wielu formatach, aby zmaksymalizować możliwość, że aplikacja docelowa, której wymagania dotyczące formatu mogą nie być znane, mogą pomyślnie pobrać dane.

Wywołaj metodę GetDataObject , aby pobrać dane ze Schowka. Dane są zwracane jako obiekt implementujący IDataObject interfejs. Użyj metod określonych przez IDataObject i pól w programie, DataFormats aby wyodrębnić dane z obiektu. Jeśli nie znasz formatu pobranych danych, wywołaj GetFormats metodę interfejsu IDataObject , aby uzyskać listę wszystkich formatów przechowywanych w danych. Następnie wywołaj metodę GetData interfejsu IDataObject i określ format, którego aplikacja może użyć.

W .NET Framework 2.0 Clipboard klasa udostępnia dodatkowe metody, które ułatwiają pracę ze schowkiem systemowym. Wywołaj metodę , Clear aby usunąć wszystkie dane ze Schowka. Aby dodać dane określonego formatu do Schowka, zastępując istniejące dane, wywołaj odpowiednią Set metodę Format, taką jak SetText, lub wywołaj SetData metodę , aby określić format. Aby pobrać dane określonego formatu ze Schowka, najpierw wywołaj odpowiednią metodę Format (npContainsText. ) w celu ustalenia, czy Schowek zawiera dane w tym formacie, a następnie wywołaj odpowiednią GetContains metodę Format (na GetTextprzykład ) w celu pobrania danych, jeśli schowek zawiera. Aby określić format w tych operacjach, wywołaj ContainsData metody i GetData .

Uwaga

Wszystkie aplikacje oparte na systemie Windows współużytkują schowek systemowy, więc zawartość może ulec zmianie po przełączeniu się do innej aplikacji.

Obiekt musi być serializowalny, aby można go było umieścić w Schowku. W przypadku przekazania obiektu nies serializowalnego do metody Schowka metoda zakończy się niepowodzeniem bez zgłaszania wyjątku. Aby uzyskać więcej informacji na temat serializacji, zobacz System.Runtime.Serialization . Jeśli aplikacja docelowa wymaga bardzo konkretnego formatu danych, nagłówki dodane do danych w procesie serializacji mogą uniemożliwić aplikacji rozpoznawanie danych. Aby zachować format danych, dodaj dane jako tablicę Byte do MemoryStream obiektu i przekaż MemoryStream do SetData metody .

Klasa Clipboard może być używana tylko w wątkach ustawionych na tryb pojedynczego wątku (STA). Aby użyć tej klasy, upewnij się, że Main metoda jest oznaczona atrybutem STAThreadAttribute .

W przypadku używania formatu metapliku ze Schowkiem mogą być konieczne specjalne zagadnienia. Ze względu na ograniczenie w bieżącej implementacji klasy format metapliku DataObject używany przez .NET Framework może nie być rozpoznawany przez aplikacje używające starszego formatu metapliku. W takim przypadku należy współpracować z interfejsami programowania aplikacji Schowka Win32 (API).

Metody

Clear()

Usuwa wszystkie dane ze Schowka.

ContainsAudio()

Wskazuje, czy w schowku znajdują się dane w WaveAudio formacie.

ContainsData(String)

Wskazuje, czy istnieją dane w Schowku, które są w określonym formacie, czy można je przekonwertować na ten format.

ContainsFileDropList()

Wskazuje, czy w Schowku znajdują się dane w FileDrop formacie, czy można je przekonwertować na ten format.

ContainsImage()

Wskazuje, czy w Schowku znajdują się dane w Bitmap formacie, czy można je przekonwertować na ten format.

ContainsText()

Wskazuje, czy w schowku znajdują się dane w Text formacie lub UnicodeText w zależności od systemu operacyjnego.

ContainsText(TextDataFormat)

Wskazuje, czy w Schowku znajdują się dane tekstowe w formacie wskazanym przez określoną TextDataFormat wartość.

GetAudioStream()

Pobiera strumień audio ze Schowka.

GetData(String)

Pobiera dane ze Schowka w określonym formacie.

GetDataObject()

Pobiera dane, które są obecnie w schowku systemowym.

GetFileDropList()

Pobiera kolekcję nazw plików ze Schowka.

GetImage()

Pobiera obraz ze Schowka.

GetText()

Pobiera dane tekstowe ze Schowka w formacie lub UnicodeText w Text zależności od systemu operacyjnego.

GetText(TextDataFormat)

Pobiera dane tekstowe ze Schowka w formacie wskazanym przez określoną TextDataFormat wartość.

SetAudio(Byte[])

Czyści schowek, a następnie dodaje tablicę Byte w WaveAudio formacie po przekonwertowaniu jej na obiekt Stream.

SetAudio(Stream)

Czyści schowek, a następnie dodaje element Stream w WaveAudio formacie.

SetData(String, Object)

Czyści schowek, a następnie dodaje dane w określonym formacie.

SetDataObject(Object)

Czyści schowek, a następnie umieszcza na nim dane niepersistentne.

SetDataObject(Object, Boolean)

Czyści schowek, a następnie umieszcza na nim dane i określa, czy dane powinny pozostać po zakończeniu działania aplikacji.

SetDataObject(Object, Boolean, Int32, Int32)

Czyści schowek, a następnie próbuje umieścić na nim dane o określonej liczbie i z określonym opóźnieniem między próbami, opcjonalnie pozostawiając dane w Schowku po zakończeniu działania aplikacji.

SetFileDropList(StringCollection)

Czyści schowek, a następnie dodaje kolekcję nazw plików w FileDrop formacie.

SetImage(Image)

Czyści schowek, a następnie dodaje element Image w Bitmap formacie.

SetText(String)

Czyści schowek, a następnie dodaje dane tekstowe w Text formacie lub UnicodeText w zależności od systemu operacyjnego.

SetText(String, TextDataFormat)

Czyści schowek, a następnie dodaje dane tekstowe w formacie wskazanym przez określoną TextDataFormat wartość.

Dotyczy

Zobacz też