Ich versuche ein Objekt in die Windows-Zwischenablage zu kopieren und wieder auszuschalten. Mein Code ist wie folgt:
In die Zwischenablage kopieren:
%Vor% Wo prompts
eine List<Data.Sources.PromptResult>
Sammlung ist.
Zwischenablage kopieren:
%Vor% Das GetFormats()
zeigt das Format als in der Liste und das GetDataPresent(List<Data.Sources.PromptResult>)
gibt true zurück, aber wenn ich versuche, das Objekt aus der Clipboard
Klasse mit GetData(List<Data.Sources.PromptResult>)
zu holen, bekomme ich eine Rückgabe von null.
Hat jemand eine Idee, was könnte falsch sein?
OK Ich habe versucht, eine Liste meines Benutzertyps in die Zwischenablage einzufügen und sie zurück zu bekommen ... Hier ist, was ich versucht habe:
Meine Benutzerklasse:
%Vor%Der übrige Code:
%Vor% ... und das Ergebnis war null
:)
... bis ich User
class als Serializable
Danach hat mein Code funktioniert. Ok, es ist nicht die Antwort, aber vielleicht hilft es Ihnen, wie.
@Reniuz danke für deine Hilfe, es hat mir geholfen, die Antwort zu erarbeiten.
Um die Text- und benutzerdefinierten Objektdaten aus der Zwischenablage mit mehreren Formaten zu entfernen, habe ich die IDataObject-Schnittstelle in meiner eigenen Klasse implementiert. Der Code zum Festlegen des Datenobjekts muss das Kopierflag wie folgt gesetzt haben:
%Vor%Um die Daten wieder zu erhalten, kann der Standardtext mit Hilfe von
abgerufen werden %Vor%Die Daten können mit der Datenmethode abgerufen werden:
%Vor%Der andere hilfreiche Punkt war, zu testen, ob das Objekt, das ich in die Zwischenablage legte, mit Hilfe der BinaryFormatter-Klasse serialisiert werden konnte. Wenn eine Ausnahme ausgelöst wird, würde das Kopieren in die Zwischenablage ebenfalls fehlschlagen. aber still.
Also meine Klasse hat:
%Vor%