2009-10-06 313 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()); 
     } 
相关问题