0

我正在为同步融合网格控件进行复制粘贴。

我的问题是粘贴比 abt syncfusion

我的数据采用 datetime-int、datetime-int... 格式,具体取决于所选的行数、列数。这是我的粘贴代码

private void theGrid_ClipboardPaste(object sender, GridCutPasteEventArgs e)
        {
 DataObject data = (DataObject)Clipboard.GetDataObject();
  try
            {

                if (data.GetDataPresent(DataFormats.Text))
                {
 rowsInClipboard =  stringInClipboard.Split('\n');
                    //split into cellvalues
                     for (int iRow = 0; iRow < rowsInClipboard.Length; iRow++)
                         ValuesInrows = rowsInClipboard[iRow].Split('\t');
...}

我将如何验证从剪贴板粘贴到网格的数据。如果我做一个自定义格式会有帮助吗?我还需要根据列访问剪贴板数据。

谢谢孙

4

1 回答 1

0

您可以在通过事件 ClipboardCanPaste 粘贴到网格时验证剪贴板数据。

this.gridControl1.ClipboardCanPaste += new GridCutPasteEventHandler(gridControl1_ClipboardCanPaste); //get triggered before pasting occurs.

如果您想访问剪贴板数据以跨列粘贴到网格,您可以通过每个说明单个单元格内容之间的制表键按下空间来拆分相应的值。以下代码以格式化方式将单元格内容跨网格单元格复制到剪贴板,以便在按列顺序从剪贴板粘贴到任何文本编辑器时使用此格式化文本。

private void CopyCellsToClipboard(GridRangeInfo range)
{
StringBuilder sb = new StringBuilder();

for (int i = range.Top; i <= range.Bottom; i++)
{
for (int j = range.Left; j <= range.Right; j++)
{
if (! (this.gridControl1.Cols.Hidden[j]))
{
sb.Append(this.gridControl1[i, j].FormattedText);
sb.Append("\t");
}
}
sb.AppendLine(System.Environment.NewLine);
}
string str = sb.ToString().Replace(System.Environment.NewLine + System.Environment.NewLine, System.Environment.NewLine);
DataObject db = new DataObject(DataFormats.UnicodeText, str);
Clipboard.SetDataObject(db);
}
于 2012-06-19T11:59:14.523 回答