develop

devExpress XtraGrid 클립보드 붙여넣기

파드파드 2024. 5. 7. 13:50
반응형

그리드에서 엑셀 데이타등을 붙여 넣기를 할때 코드.

클립보드를 읽어서 루프를 도는 방식도 있으나 

// 다중 선택            

gridView.OptionsSelection.MultiSelect = true;            

 

// 다중선택시 cell 선택으로 설정           

gridView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect;            

 

// 붙여넣기시 update            

gridView.OptionsClipboard.PasteMode = DevExpress.Export.PasteMode.Update;​

 

//셀이 편집중이어도 ctrl+v가 정상적으로 되도록 Form에서 ProcessCmdKey override  

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)       

{           

         if (keyData == (Keys.Control | Keys.V))            

         {                

                     gridView.PasteFromClipboard();                

                      return true;            

          }           

             

          return base.ProcessCmdKey(ref msg, keyData);

}

 

 

참고로)

### 클립보드to그리드

private void btnPaste_Click(object sender, EventArgs e)

{

string[] data = Clipboard.GetText().Split('\n');

if (data.Length < 1) return;

foreach (string row in data)

{

AddRow(row);

}

}

 

void AddRow(string data)

{

if (data == string.Empty) return;

string[] rowData = data.Split(new char[] { '\r', '\x09' });

DataRow newRow = _dtProj.NewRow();

for (int i = 0; i < rowData.Length; i++)

{

if (i >= _dtProj.Columns.Count) break;

newRow[i] = rowData[i];

}

_dtProj.Rows.Add(newRow);

}

 

출처: https://simplain.tistory.com/352 [외부기억 外部記憶 External Memories:티스토리]

반응형