2009-10-06 314 views
1

我需要能夠姓名或名稱從一個應用程序複製(使用正常的複製命令),然後可以雙擊一個DataGridView文本單元格粘貼數據放入網格單元格中。任何想法如何實現這一目標?我正試圖最大限度地減少鍵盤使用此功能。複製並粘貼到一個DataGridView單元格(C#)

+9

請註明作出了回答,接受,如果它幫助你解決了這個問題。 – 2009-10-07 07:36:06

回答

1

你應該附加一個事件處理程序到小區點擊事件,並通過數據Clipboard.GetText()替換單元格中的文本。

8

這是比你想象的其實更容易。

在您的DataGridView和創建CellDoubleClick事件它把這樣的代碼:

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { 
    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Clipboard.GetText(); 
} 
+0

這就是我需要的。太感謝了。 – DaBomb 2009-10-06 20:14:14

+0

好!沒問題。 – 2009-10-06 20:41:40

+1

這是完成複製和粘貼的最簡單方法。但是,無論如何,我可以使用右鍵單擊然後粘貼到datagridview。 – Ani 2010-09-21 16:31:05

1

我寫這個複製通用:

 DataGridViewSelectedRowCollection dtSeleccionados = dataGrid.SelectedRows; 
     DataGridViewCellCollection dtCells; 
     String row; 
     String strCopiado = ""; 
     for (int i = dtSeleccionados.Count - 1; i >= 0; i--) 
     { 
      dtCells = dtSeleccionados[i].Cells; 
      row = ""; 
      for (int j = 0; j < dtCells.Count; j++) 
      { 
       row = row + dtCells[j].Value.ToString() + (((j + 1) == dtCells.Count) ? "" : "\t"); 
      } 
      strCopiado = strCopiado + row + "\n"; 
     } 
     try 
     { 
      Clipboard.SetText(strCopiado); 
     } 
     catch (ArgumentNullException ex) 
     { 
      Console.Write(ex.ToString()); 
     } 
相關問題