2012-04-24 3 views
0

syncfusion 표 제어 도구의 복사 붙여 넣기를 수행하고 있습니다.형식으로 데이터에 액세스하는 클립 보드

내 질문이 syncfusion ABT보다 붙여 넣기 ABT 더

내 데이터 행, 선택된 열 수에 따라 날짜-INT, 날짜-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. 

, 각 설명 개별 셀 내용 사이에 탭 키를 눌러 공간을 통해 각각의 값을 분할 할 수 있습니다. 다음 코드는 서식있는 방식으로 표 셀에서 셀 내용을 클립 보드 inorder로 복사하여 클립 보드에서 텍스트 순서대로 텍스트 편집기에 붙여 넣을 때이 서식이 지정된 텍스트를 사용합니다.

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