void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.C) { DataObject d = dataGridView1.GetClipboardContent(); Clipboard.SetDataObject(d); e.Handled = true; } else if (e.Control && e.KeyCode == Keys.V) { string s = Clipboard.GetText(); string[] lines = s.Split(‘\n‘); int row = dataGridView1.CurrentCell.RowIndex; int col = dataGridView1.CurrentCell.ColumnIndex; //check if need add row if ((dataGridView1.Rows.Count - row) < lines.Length) { dataGridView1.Rows.Add(lines.Length - (dataGridView1.Rows.Count - row)); } foreach (string line in lines) { if ((line.Length > 0) && row < dataGridView1.RowCount) { string[] cells = line.Split(‘\t‘); for (int i = 0; i < cells.GetLength(0); ++i) { if (col + i < this.dataGridView1.ColumnCount) { dataGridView1[col + i, row].Value = Convert.ChangeType(cells[i], dataGridView1[col + i, row].ValueType); } else { break; } } row++; } else if (row == dataGridView1.RowCount && line.Length > 0) { break; } } } }
将Excel中内容直接复制粘贴到DataGridView中或其他表格控件中(其他控件代码类似),将表格内容复制粘贴到Excel中.
实现CTRL+C 和CTRL+V. 代码如下: