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 bereit, mit denen Daten in der Zwischenablage des Systems abgelegt bzw. aus dieser abgerufen werden. 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 Methoden verwendet Clipboard , um Daten in zu platzieren und aus der Systemablage abzurufen. Bei diesem Code wird davon ausgegangen, dass button1
, button2
textBox1
, und textBox2
erstellt und im Formular platziert wurden.
Die button1_Click
-Methode ruft auf SetDataObject , um ausgewählten Text aus dem Textfeld zu übernehmen und ihn in der Systemablage zu platzieren.
Die button2_Click
-Methode ruft auf GetDataObject , um Daten aus der Systemablage abzurufen. Der Code verwendet IDataObject und DataFormats , um die zurückgegebenen Daten zu extrahieren und zeigt die Daten in textBox2
an.
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.
Rufen Sie auf SetDataObject , um Daten in die Zwischenablage zu verschieben, wobei der aktuelle Inhalt ersetzt wird. Um eine persistente Kopie der Daten in der Zwischenablage zu platzieren, legen Sie den copy
Parameter auf fest true
.
Hinweis
Um Daten in mehreren Formaten in der Zwischenablage 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 auf GetDataObject , um Daten aus der Zwischenablage abzurufen. Die Daten werden als Objekt zurückgegeben, das die IDataObject -Schnittstelle implementiert. Verwenden Sie die methoden, die in den Feldern DataFormats und angegeben sindIDataObject, 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 die Daten gespeichert sind. Rufen Sie dann die GetData -Methode der IDataObject -Schnittstelle auf, und geben Sie ein Format an, das Ihre Anwendung verwenden kann.
In .NET Framework 2.0 stellt die Clipboard -Klasse 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. Um der Zwischenablage Daten eines bestimmten Formats hinzuzufügen, indem Sie die vorhandenen Daten ersetzen, rufen Sie die entsprechende Set
Format-Methode 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 Contains
Format-Methode (z ContainsText. B. ) auf, um zu bestimmen, ob die Zwischenablage Daten in diesem Format enthält, und dann die entsprechende Get
Format-Methode (z GetText. B. ), um die Daten abzurufen, wenn die Zwischenablage sie enthält. Um das Format in diesen Vorgängen anzugeben, rufen Sie stattdessen die ContainsData Methoden und auf GetData .
Hinweis
Alle Windows-basierten Anwendungen teilen sich 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 auszulösen. Weitere Informationen zur Serialisierung finden Sie System.Runtime.Serialization unter. Wenn Ihre Zielanwendung ein sehr spezifisches Datenformat erfordert, können die Header, die den Daten im Serialisierungsprozess hinzugefügt werden, verhindern, dass die Anwendung Ihre Daten erkennt. Um Ihr Datenformat beizubehalten, fügen Sie Ihre Daten als Byte Array zu einem hinzu MemoryStream , und übergeben Sie an MemoryStream 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 Ihre Main
-Methode mit dem STAThreadAttribute-Attribut gekennzeichnet ist.
Bei verwendung des Metadateiformats mit der Zwischenablage können besondere Überlegungen erforderlich sein. Aufgrund einer Einschränkung in der aktuellen Implementierung der DataObject -Klasse wird das vom .NET Framework verwendete Metadateiformat möglicherweise von Anwendungen, die ein älteres Metadateiformat verwenden, nicht erkannt. In diesem Fall müssen Sie mit den Win32-ApIs (Application Programming Interfaces) für die Zwischenablage zusammenarbeiten.
Methoden
Clear() |
Entfernt alle Daten aus der Zwischenablage. |
ContainsAudio() |
Gibt an, ob in der Zwischenablage Daten im WaveAudio-Format vorhanden sind. |
ContainsData(String) |
Gibt an, ob sich in der Zwischenablage Daten befinden, die dem angegebenen Format entsprechen oder in dieses konvertiert werden können. |
ContainsFileDropList() |
Gibt an, ob sich in der Zwischenablage Daten im FileDrop-Format oder Daten befinden, die in dieses Format konvertiert werden können. |
ContainsImage() |
Gibt an, ob sich in der Zwischenablage Daten im Bitmap-Format oder Daten befinden, die in dieses Format konvertiert werden können. |
ContainsText() |
Gibt an, ob die Zwischenablage Daten im Text-Format oder UnicodeText-Format enthält, je nach Betriebssystem. |
ContainsText(TextDataFormat) |
Gibt an, ob die Zwischenablage Textdaten im vom angegebenen TextDataFormat-Wert definierten Format enthält. |
GetAudioStream() |
Ruft einen Audiostream aus der Zwischenablage ab. |
GetData(String) |
Ruft Daten im angegebenen Format aus der Zwischenablage ab. |
GetDataObject() |
Ruft die Daten ab, die sich gegenwärtig in der Zwischenablage des Systems befinden. |
GetFileDropList() |
Ruft eine Auflistung von Dateinamen aus der Zwischenablage ab. |
GetImage() |
Ruft ein Bild aus der Zwischenablage ab. |
GetText() |
Ruft Textdaten im Text-Format oder im UnicodeText-Format aus der Zwischenablage ab, je nach Betriebssystem. |
GetText(TextDataFormat) |
Ruft Textdaten im vom angegebenen TextDataFormat-Wert definierten Format aus der Zwischenablage ab. |
SetAudio(Byte[]) |
Löscht die Zwischenablage und fügt dann ein Byte-Array im WaveAudio-Format hinzu, nachdem es in einen Stream konvertiert wurde. |
SetAudio(Stream) |
Löscht die Zwischenablage und fügt dann einen Stream im WaveAudio-Format hinzu. |
SetData(String, Object) |
Löscht die Zwischenablage und fügt dann Daten im angegebenen Format hinzu. |
SetDataObject(Object) |
Löscht die Zwischenablage und platziert dann nicht beständige Daten darin. |
SetDataObject(Object, Boolean) |
Löscht die Zwischenablage und platziert dann Daten darin und gibt an, ob die Daten nach Beenden der Anwendung in der Zwischenablage beibehalten werden sollen. |
SetDataObject(Object, Boolean, Int32, Int32) |
Löscht die Zwischenablage und versucht dann, die Daten in der angegebenen Häufigkeit und mit dem angegebenen zeitlichen Abstand zwischen den Versuchen abzulegen. Die Daten werden dabei optional nach dem Beenden der Anwendung in der Zwischenablage belassen. |
SetFileDropList(StringCollection) |
Löscht die Zwischenablage und fügt dann im FileDrop-Format eine Auflistung von Dateinamen hinzu. |
SetImage(Image) |
Löscht die Zwischenablage und fügt dann ein Image im Bitmap-Format hinzu. |
SetText(String) |
Löscht die Zwischenablage und fügt dann im Text-Format oder UnicodeText-Format Textdaten hinzu, je nach Betriebssystem. |
SetText(String, TextDataFormat) |
Löscht die Zwischenablage und fügt dann Textdaten im Format hinzu, das vom angegebenen TextDataFormat-Wert definiert wird. |