public static void CopyToClipboard(GUI.WorksheetController dg) { Altaxo.Data.DataTable dt = dg.DataTable; System.Windows.Forms.DataObject dao = new System.Windows.Forms.DataObject(); if (dg.AreDataCellsSelected) { WriteAsciiToClipBoardIfDataCellsSelected(dg, dao); } else if (dg.ArePropertyCellsSelected && !(dg.AreDataCellsSelected)) { WriteAsciiToClipBoardIfOnlyPropertyCellsSelected(dg, dao); } if (dg.AreColumnsOrRowsSelected) { // copy the data as table with the selected columns Altaxo.Data.DataTable.ClipboardMemento tablememento = new Altaxo.Data.DataTable.ClipboardMemento( dg.DataTable, dg.SelectedDataColumns, dg.SelectedDataRows, dg.SelectedPropertyColumns, dg.SelectedPropertyRows); dao.SetData("Altaxo.Data.DataTable.ClipboardMemento", tablememento); // now copy the data object to the clipboard System.Windows.Forms.Clipboard.SetDataObject(dao, true); } }
public static void PasteFromClipboard(GUI.WorksheetController dg) { Altaxo.Data.DataTable dt = dg.DataTable; System.Windows.Forms.DataObject dao = System.Windows.Forms.Clipboard.GetDataObject() as System.Windows.Forms.DataObject; string[] formats = dao.GetFormats(); System.Diagnostics.Trace.WriteLine("Available formats:"); //foreach(string format in formats) System.Diagnostics.Trace.WriteLine(format); if (dao.GetDataPresent("Altaxo.Data.DataTable.ClipboardMemento")) { Altaxo.Data.DataTable.ClipboardMemento tablememento = (Altaxo.Data.DataTable.ClipboardMemento)dao.GetData("Altaxo.Data.DataTable.ClipboardMemento"); PasteFromTable(dg, tablememento.DataTable); return; } object clipboardobject = null; Altaxo.Data.DataTable table = null; if (dao.GetDataPresent("Csv")) { clipboardobject = dao.GetData("Csv"); } else if (dao.GetDataPresent("Text")) { clipboardobject = dao.GetData("Text"); } if (clipboardobject is System.IO.MemoryStream) { table = Altaxo.Serialization.Ascii.AsciiImporter.Import((System.IO.Stream)clipboardobject); } else if (clipboardobject is string) { table = Altaxo.Serialization.Ascii.AsciiImporter.Import((string)clipboardobject); } if (null != table) { PasteFromTable(dg, table); } }
public static void CopyToClipboard(IWorksheetController dg) { Altaxo.Data.DataTable dt = dg.DataTable; var dataObject = Current.Gui.GetNewClipboardDataObject(); if (dg.AreDataCellsSelected) { WriteAsciiToClipBoardIfDataCellsSelected(dg, dataObject); } else if (dg.ArePropertyCellsSelected && !(dg.AreDataCellsSelected)) { WriteAsciiToClipBoardIfOnlyPropertyCellsSelected(dg, dataObject); } if (dg.AreColumnsOrRowsSelected) { // copy the data as table with the selected columns var tablememento = new Altaxo.Data.DataTable.ClipboardMemento(dg.DataTable, dg.SelectedDataColumns, dg.SelectedDataRows, dg.SelectedPropertyColumns, dg.SelectedPropertyRows); Altaxo.Serialization.Clipboard.ClipboardSerialization.PutObjectToDataObject("Altaxo.Data.DataTable.ClipboardMemento", tablememento, dataObject); } Current.Gui.SetClipboardDataObject(dataObject, true); }