簡體   English   中英

剪貼板訪問格式的數據

[英]clipboard accessing data in format

我正在為syncfusion網格控件復制粘貼。

我的問題更多是abt粘貼而不是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');
...}

我將如何驗證從剪貼板粘貼到網格的數據。 如果我做一個自定義格式會有所幫助。 我還需要基於列訪問剪貼板數據。

謝謝孫

您可以在通過事件ClipboardCanPaste粘貼到網格時驗證剪貼板數據。

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

如果要訪問剪貼板數據以跨列粘貼到網格,則可以通過在每個說明單個單元格內容之間的Tab鍵按下空格分割各個值。 下面的代碼以格式化的方式跨網格單元格將單元格內容復制到剪貼板,以便在以列順序從剪貼板粘貼到任何文本編輯器時使用此格式化的文本。

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM