Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Clipboard-Klasse stellt Methoden bereit, mit denen Sie mit dem Feature "Zwischenablage" des Windows-Betriebssystems interagieren können. Viele Anwendungen verwenden die Zwischenablage als temporären Speicher für Daten. Word-Prozessoren verwenden z. B. die Zwischenablage beim Ausschneiden und Einfügen. Die Zwischenablage ist auch nützlich, um Informationen von einer Anwendung in eine andere zu übertragen.
Einige Anwendungen speichern Daten in der Zwischenablage in mehreren Formaten, um die Anzahl anderer Anwendungen zu erhöhen, die die Daten potenziell verwenden können. Ein Zwischenablageformat ist eine Zeichenfolge, die das Format identifiziert. Eine Anwendung, die das identifizierte Format verwendet, kann die zugeordneten Daten in der Zwischenablage abrufen. Die DataFormats Klasse stellt vordefinierte Formatnamen für Ihre Verwendung bereit. Sie können auch eigene Formatnamen verwenden oder den Typ eines Objekts als Format verwenden. Informationen zum Hinzufügen von Daten zur Zwischenablage finden Sie unter How to: Add Data to the Clipboard.
Um festzustellen, ob die Zwischenablage Daten in einem bestimmten Format enthält, verwenden Sie eines der Contains
Format Verfahren oder das GetData Verfahren. Verwenden Sie zum Abrufen von Daten aus der Zwischenablage eine der Get
Format- Methoden oder die GetData-Methode. Diese Methoden sind neu in .NET Framework 2.0.
Verwenden Sie zum Zugreifen auf Daten aus der Zwischenablage mithilfe von Versionen vor .NET Framework 2.0 die Clipboard.GetDataObject-Methode und rufen die Methoden der zurückgegebenen IDataObjectauf. Um festzustellen, ob ein bestimmtes Format im zurückgegebenen Objekt verfügbar ist, rufen Sie z. B. die GetDataPresent-Methode auf.
Anmerkung
Alle Windows-basierten Anwendungen benutzen die System-Zwischenablage. Daher können sich die Inhalte ändern, wenn Sie zu einer anderen Anwendung wechseln.
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 versehen ist.
So rufen Sie Daten aus der Zwischenablage in einem einzigen gängigen Format ab
Verwenden Sie die Methode GetAudioStream, GetFileDropList, GetImageoder GetText. Verwenden Sie optional die entsprechenden
Contains
Format- Methoden zuerst, um zu bestimmen, ob Daten in einem bestimmten Format verfügbar sind. Diese Methoden sind nur in .NET Framework 2.0 verfügbar.// Demonstrates SetAudio, ContainsAudio, and GetAudioStream. public System.IO.Stream SwapClipboardAudio( System.IO.Stream replacementAudioStream) { System.IO.Stream returnAudioStream = null; if (Clipboard.ContainsAudio()) { returnAudioStream = Clipboard.GetAudioStream(); Clipboard.SetAudio(replacementAudioStream); } return returnAudioStream; } // Demonstrates SetFileDropList, ContainsFileDroList, and GetFileDropList public System.Collections.Specialized.StringCollection SwapClipboardFileDropList( System.Collections.Specialized.StringCollection replacementList) { System.Collections.Specialized.StringCollection returnList = null; if (Clipboard.ContainsFileDropList()) { returnList = Clipboard.GetFileDropList(); Clipboard.SetFileDropList(replacementList); } return returnList; } // Demonstrates SetImage, ContainsImage, and GetImage. public System.Drawing.Image SwapClipboardImage( System.Drawing.Image replacementImage) { System.Drawing.Image returnImage = null; if (Clipboard.ContainsImage()) { returnImage = Clipboard.GetImage(); Clipboard.SetImage(replacementImage); } return returnImage; } // Demonstrates SetText, ContainsText, and GetText. public String SwapClipboardHtmlText(String replacementHtmlText) { String returnHtmlText = null; if (Clipboard.ContainsText(TextDataFormat.Html)) { returnHtmlText = Clipboard.GetText(TextDataFormat.Html); Clipboard.SetText(replacementHtmlText, TextDataFormat.Html); } return returnHtmlText; }
' Demonstrates SetAudio, ContainsAudio, and GetAudioStream. Public Function SwapClipboardAudio( _ ByVal replacementAudioStream As System.IO.Stream) _ As System.IO.Stream Dim returnAudioStream As System.IO.Stream = Nothing If (Clipboard.ContainsAudio()) Then returnAudioStream = Clipboard.GetAudioStream() Clipboard.SetAudio(replacementAudioStream) End If Return returnAudioStream End Function ' Demonstrates SetFileDropList, ContainsFileDroList, and GetFileDropList Public Function SwapClipboardFileDropList(ByVal replacementList _ As System.Collections.Specialized.StringCollection) _ As System.Collections.Specialized.StringCollection Dim returnList As System.Collections.Specialized.StringCollection _ = Nothing If Clipboard.ContainsFileDropList() Then returnList = Clipboard.GetFileDropList() Clipboard.SetFileDropList(replacementList) End If Return returnList End Function ' Demonstrates SetImage, ContainsImage, and GetImage. Public Function SwapClipboardImage( _ ByVal replacementImage As System.Drawing.Image) _ As System.Drawing.Image Dim returnImage As System.Drawing.Image = Nothing If Clipboard.ContainsImage() Then returnImage = Clipboard.GetImage() Clipboard.SetImage(replacementImage) End If Return returnImage End Function ' Demonstrates SetText, ContainsText, and GetText. Public Function SwapClipboardHtmlText( _ ByVal replacementHtmlText As String) As String Dim returnHtmlText As String = Nothing If (Clipboard.ContainsText(TextDataFormat.Html)) Then returnHtmlText = Clipboard.GetText(TextDataFormat.Html) Clipboard.SetText(replacementHtmlText, TextDataFormat.Html) End If Return returnHtmlText End Function
So rufen Sie Daten aus der Zwischenablage in einem benutzerdefinierten Format ab
Verwenden Sie die GetData-Methode mit einem benutzerdefinierten Formatnamen. Diese Methode ist nur in .NET Framework 2.0 verfügbar.
Sie können auch vordefinierte Formatnamen mit der SetData-Methode verwenden. Weitere Informationen finden Sie unter DataFormats.
// Demonstrates SetData, ContainsData, and GetData // using a custom format name and a business object. public Customer TestCustomFormat { get { Clipboard.SetData("CustomerFormat", new Customer("Customer Name")); if (Clipboard.ContainsData("CustomerFormat")) { return Clipboard.GetData("CustomerFormat") as Customer; } return null; } }
' Demonstrates SetData, ContainsData, and GetData ' using a custom format name and a business object. Public ReadOnly Property TestCustomFormat() As Customer Get Clipboard.SetData("CustomerFormat", New Customer("Customer Name")) If Clipboard.ContainsData("CustomerFormat") Then Return CType(Clipboard.GetData("CustomerFormat"), Customer) End If Return Nothing End Get End Property
[Serializable] public class Customer { private string nameValue = string.Empty; public Customer(String name) { nameValue = name; } public string Name { get { return nameValue; } set { nameValue = value; } } }
<Serializable()> Public Class Customer Private nameValue As String = String.Empty Public Sub New(ByVal name As String) nameValue = name End Sub Public Property Name() As String Get Return nameValue End Get Set(ByVal value As String) nameValue = value End Set End Property End Class
So rufen Sie Daten aus der Zwischenablage in mehreren Formaten ab
Verwenden Sie die GetDataObject-Methode. Sie müssen diese Methode verwenden, um Daten aus der Zwischenablage in früheren Versionen als .NET Framework 2.0 abzurufen.
// Demonstrates how to use a DataObject to add // data to the Clipboard in multiple formats. public void TestClipboardMultipleFormats() { DataObject data = new DataObject(); // Add a Customer object using the type as the format. data.SetData(new Customer("Customer as Customer object")); // Add a ListViewItem object using a custom format name. data.SetData("CustomFormat", new ListViewItem("Customer as ListViewItem")); Clipboard.SetDataObject(data); DataObject retrievedData = (DataObject)Clipboard.GetDataObject(); if (retrievedData.GetDataPresent("CustomFormat")) { ListViewItem item = retrievedData.GetData("CustomFormat") as ListViewItem; if (item != null) { MessageBox.Show(item.Text); } } if (retrievedData.GetDataPresent(typeof(Customer))) { Customer customer = retrievedData.GetData(typeof(Customer)) as Customer; if (customer != null) { MessageBox.Show(customer.Name); } } }
' Demonstrates how to use a DataObject to add ' data to the Clipboard in multiple formats. Public Sub TestClipboardMultipleFormats() Dim data As New DataObject() ' Add a Customer object using the type as the format. data.SetData(New Customer("Customer as Customer object")) ' Add a ListViewItem object using a custom format name. data.SetData("CustomFormat", _ New ListViewItem("Customer as ListViewItem")) Clipboard.SetDataObject(data) Dim retrievedData As DataObject = _ CType(Clipboard.GetDataObject(), DataObject) If (retrievedData.GetDataPresent("CustomFormat")) Then Dim item As ListViewItem = _ TryCast(retrievedData.GetData("CustomFormat"), ListViewItem) If item IsNot Nothing Then MessageBox.Show(item.Text) End If End If If retrievedData.GetDataPresent(GetType(Customer)) Then Dim customer As Customer = _ CType(retrievedData.GetData(GetType(Customer)), Customer) If customer IsNot Nothing Then MessageBox.Show(customer.Name) End If End If End Sub
[Serializable] public class Customer { private string nameValue = string.Empty; public Customer(String name) { nameValue = name; } public string Name { get { return nameValue; } set { nameValue = value; } } }
<Serializable()> Public Class Customer Private nameValue As String = String.Empty Public Sub New(ByVal name As String) nameValue = name End Sub Public Property Name() As String Get Return nameValue End Get Set(ByVal value As String) nameValue = value End Set End Property End Class
Siehe auch
.NET Desktop feedback