因为有这样的需要,所以在网上搜索了一下解决的办法,查到如下一段代码:
private void dataGridView_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
if ((e.Clicks < 2) && (e.Button==MouseButtons.Left))
{
if ((e.ColumnIndex ==-1) && (e.RowIndex > -1))
dataGridView.DoDragDrop(dataGridView.Rows[e.RowIndex], DragDropEffects.Move);
}
}
鼠标在单元格里移动时激活拖放功能,我这里判断了如果是只有单击才执行拖放,双击我要执行其他功能,而且只有点在每行的表头那一格拖动才行,否则会影响编辑其他单元格的值。如果希望点在任何一个单元格都可以拖动,去掉判断列序号的条件就行了。
private void dataGridView_DragDrop(object sender, DragEventArgs e)
{
int idx = GetRowFromPoint(e.X, e.Y);
if (idx < 0) return;
if (e.Data.GetDataPresent(typeof(DataGridViewRow)))
{
DataG