2012-04-24 39 views
0

我正在爲syncfusion網格控件進行復制粘貼。以格式訪問數據的剪貼板

我的問題是不是ABT syncfusion更ABT貼

我的數據是日期時間,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'); 
...} 

我將如何驗證從剪貼板到電網被粘貼此數據。如果我製作了自定義格式,會有幫助嗎? 另外我需要訪問基於列的剪貼板數據。

感謝 孫

回答

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