Clipboard Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt Methoden zum Platzieren von Daten aus der Systemablage bereit und ruft Daten aus der Systemablage ab. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
Clipboard
Beispiele
Im folgenden Codebeispiel werden Clipboard Methoden verwendet, um Daten in der Systemablage zu platzieren und aus der Systemablage abzurufen. Dieser Code geht davon aus, dass button1das button2textBox1textBox2 Formular erstellt und platziert wurde.
Die button1_Click Methode ruft den SetDataObject markierten Text aus dem Textfeld auf und platziert ihn in der Systemablage.
Die button2_Click Methode ruft GetDataObject daten aus der Systemablage ab. Der Code verwendet IDataObject und DataFormats extrahiert die zurückgegebenen Daten und zeigt die Daten in 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
Hinweise
Eine Liste der vordefinierten Formate, die mit der Clipboard Klasse verwendet werden sollen, finden Sie in der DataFormats Klasse.
Aufrufen SetDataObject zum Einfügen von Daten in die Zwischenablage und Ersetzen des aktuellen Inhalts. Um eine dauerhafte Kopie der Daten in der Zwischenablage zu platzieren, legen Sie den copy Parameter auf true.
Note
Um Daten in der Zwischenablage in mehreren Formaten zu platzieren, verwenden Sie die DataObject Klasse oder eine IDataObject Implementierung. Platzieren Sie Daten in der Zwischenablage in mehreren Formaten, um die Möglichkeit zu maximieren, dass eine Zielanwendung, deren Formatanforderungen Sie möglicherweise nicht kennen, die Daten erfolgreich abrufen kann.
Rufen Sie den Aufruf GetDataObject auf, um Daten aus der Zwischenablage abzurufen. Die Daten werden als Objekt zurückgegeben, das die IDataObject Schnittstelle implementiert. Verwenden Sie die von IDataObject und Feldern DataFormats angegebenen Methoden, um die Daten aus dem Objekt zu extrahieren. Wenn Sie das Format der abgerufenen Daten nicht kennen, rufen Sie die GetFormats Methode der IDataObject Schnittstelle auf, um eine Liste aller Formate abzurufen, in denen Daten gespeichert sind. Rufen Sie dann die GetData Methode der IDataObject Schnittstelle auf, und geben Sie ein Format an, das Ihre Anwendung verwenden kann.
Die Clipboard Klasse stellt zusätzliche Methoden bereit, die das Arbeiten mit der Systemablage vereinfachen. Rufen Sie die Clear Methode auf, um alle Daten aus der Zwischenablage zu entfernen. Wenn Sie der Zwischenablage Daten eines bestimmten Formats hinzufügen möchten, ersetzen Sie die vorhandenen Daten, rufen Sie die entsprechende SetFormatmethode auf, z SetText. B. oder rufen Sie die SetData Methode auf, um das Format anzugeben. Um Daten eines bestimmten Formats aus der Zwischenablage abzurufen, rufen Sie zuerst die entsprechende ContainsFormat-Methode (z ContainsText. B. ) auf, um zu bestimmen, ob die Zwischenablage Daten in diesem Format enthält, und rufen Sie dann die entsprechende GetFormatmethode (z GetText. B. ) auf, um die Daten abzurufen, wenn die Zwischenablage sie enthält. Rufen Sie stattdessen die ContainsData Methoden auf GetData , um das Format in diesen Vorgängen anzugeben.
Note
Alle Windows-basierten Anwendungen teilen die Systemablage, sodass sich der Inhalt ändern kann, wenn Sie zu einer anderen Anwendung wechseln.
Ein Objekt muss serialisierbar sein, damit es in der Zwischenablage abgelegt werden kann. Wenn Sie ein nicht serialisierbares Objekt an eine Zwischenablagemethode übergeben, schlägt die Methode fehl, ohne eine Ausnahme auszuwerfen. Weitere Informationen zur Serialisierung finden Sie unter.See System.Runtime.Serialization for more information on serialization. Wenn Ihre Zielanwendung ein sehr spezifisches Datenformat erfordert, können die Header, die den Daten im Serialisierungsprozess hinzugefügt wurden, verhindern, dass die Anwendung Ihre Daten erkennt. Um das Datenformat beizubehalten, fügen Sie Die Daten als Byte Array zu einer MemoryStream hinzu und übergeben sie MemoryStream an die SetData Methode.
Die Clipboard-Klasse kann nur in Threads verwendet werden, die auf den STA-Modus (Single Thread Apartment) festgelegt sind. Um diese Klasse zu verwenden, stellen Sie sicher, dass die Main-Methode mit dem STAThreadAttribute-Attribut markiert ist.
Besondere Überlegungen können bei Verwendung des Metadateiformats mit der Zwischenablage erforderlich sein. Aufgrund einer Einschränkung bei der aktuellen Implementierung der DataObject-Klasse wird das vom .NET Framework verwendete Metadateiformat möglicherweise nicht von Anwendungen erkannt, die ein älteres Metadateiformat verwenden. In diesem Fall müssen Sie mit den Programmierschnittstellen für die Win32-Zwischenablage (Application Programming Interfaces, APIs) in der Zwischenablage zusammenarbeiten.
Methoden
| Name | Beschreibung |
|---|---|
| Clear() |
Entfernt alle Daten aus der Zwischenablage. |
| ContainsAudio() |
Gibt an, ob daten in der Zwischenablage im WaveAudio Format vorhanden sind. |
| ContainsData(String) |
Gibt an, ob daten in der Zwischenablage vorhanden sind, die sich im angegebenen Format befinden oder in dieses Format konvertiert werden können. |
| ContainsFileDropList() |
Gibt an, ob daten in der Zwischenablage vorhanden sind, die sich FileDrop im Format befinden oder in dieses Format konvertiert werden können. |
| ContainsImage() |
Gibt an, ob daten in der Zwischenablage vorhanden sind, die sich Bitmap im Format befinden oder in dieses Format konvertiert werden können. |
| ContainsText() |
Gibt an, ob je nach Betriebssystem Daten in der Zwischenablage oder TextUnicodeText im Format vorhanden sind. |
| ContainsText(TextDataFormat) |
Gibt an, ob textdaten in der Zwischenablage im durch den angegebenen Wert angegebenen TextDataFormat Format vorhanden sind. |
| GetAudioStream() |
Ruft einen Audiodatenstrom aus der Zwischenablage ab. |
| GetData(String) |
Veraltet.
Ruft Daten aus der Zwischenablage im angegebenen Format ab. |
| GetDataObject() |
Ruft die Daten ab, die sich derzeit in der Systemablage befinden. |
| GetFileDropList() |
Ruft eine Auflistung von Dateinamen aus der Zwischenablage ab. |
| GetImage() |
Ruft ein Bild aus der Zwischenablage ab. |
| GetText() |
Ruft Je nach Betriebssystem Textdaten aus der Zwischenablage im Text Oder UnicodeText Format ab. |
| GetText(TextDataFormat) |
Ruft Textdaten aus der Zwischenablage im durch den angegebenen Wert angegebenen TextDataFormat Format ab. |
| SetAudio(Byte[]) |
Löscht die Zwischenablage und fügt dann ein Byte Array im WaveAudio Format hinzu, nachdem es in ein Stream. |
| SetAudio(Stream) |
Löscht die Zwischenablage und fügt dann ein Stream Format WaveAudio hinzu. |
| SetData(String, Object) |
Löscht die Zwischenablage und fügt dann Daten im angegebenen Format hinzu. |
| SetDataAsJson<T>(String, T) |
Stellt Methoden zum Platzieren von Daten aus der Systemablage bereit und ruft Daten aus der Systemablage ab. Diese Klasse kann nicht vererbt werden. |
| SetDataObject(Object, Boolean, Int32, Int32) |
Löscht die Zwischenablage, und versucht dann, Daten darin die angegebene Anzahl von Malen und mit der angegebenen Verzögerung zwischen versuchen, optional die Daten in der Zwischenablage nach dem Beenden der Anwendung zu speichern. |
| SetDataObject(Object, Boolean) |
Löscht die Zwischenablage und platziert dann Daten darauf und gibt an, ob die Daten nach dem Beenden der Anwendung verbleiben sollen. |
| SetDataObject(Object) |
Löscht die Zwischenablage und platziert dann nicht konsistenzfreie Daten darauf. |
| SetFileDropList(StringCollection) |
Löscht die Zwischenablage und fügt dann eine Auflistung von Dateinamen im FileDrop Format hinzu. |
| SetImage(Image) |
Löscht die Zwischenablage und fügt dann ein ImageBitmap Format hinzu. |
| SetText(String, TextDataFormat) |
Löscht die Zwischenablage und fügt dann Textdaten in dem durch den angegebenen Wert angegebenen TextDataFormat Format hinzu. |
| SetText(String) |
Löscht die Zwischenablage und fügt dann je nach Betriebssystem Textdaten im Text oder UnicodeText Format hinzu. |
| TryGetData<T>(String, Func<TypeName,Type>, T) |
Stellt Methoden zum Platzieren von Daten aus der Systemablage bereit und ruft Daten aus der Systemablage ab. Diese Klasse kann nicht vererbt werden. |
| TryGetData<T>(String, T) |
Stellt Methoden zum Platzieren von Daten aus der Systemablage bereit und ruft Daten aus der Systemablage ab. Diese Klasse kann nicht vererbt werden. |
| TryGetData<T>(T) |
Stellt Methoden zum Platzieren von Daten aus der Systemablage bereit und ruft Daten aus der Systemablage ab. Diese Klasse kann nicht vererbt werden. |