Я пытаюсь добавить копию/вставку в приложение, редактирующее элементы. Наличие копии данных для набора выбранных элементов должно включать их дублирование или перенос их в другой экземпляр программы. Я попытался это:Почему не работает System.Windows.Forms.Clipboard.GetData/SetData?
const string MyClipboardFormat = "MyClipboardFormat"
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
XmlDocument xdoc;
//add data of selected items
Clipboard.SetData(MyClipboardFormat,xdoc);
}
private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
XmlDocument xdoc = Clipboard.GetData(MyClipboardFormat) as XmlDocument;
if (xdoc == null)
throw new Exception("Clipboard does not contain MyClipboardFormat");
//read item data from xdoc
}
Я гугл но нашел только биты об использовании GetDataObject/SetDataObject, что эквивалентно тому, что, как представляется, происходят в любом случае, если я использую отражатель, чтобы посмотреть, что делает GetData/SetData.
Должен ли я регистрировать строку формата буфера обмена где-нибудь?
Нет, это Безразлично» t помочь. Я даже не уверен, что делать с «форматом», который был возвращен сюда. GetData/SetData принимает строку как дескриптор формата. –