/// <summary>
/// 下移
/// </summary>
/// <param name="dataGridView"></param>
public void MoveToDownRow(DataGridView dataGridView)
{
try
{
var index = dataGridView.CurrentCell.RowIndex;
if (dataGridView.RowCount > 0)
{
if (index >= 0 & (dataGridView.RowCount - 1) != index)//如果该行不是最后一行
{
DataGridViewRow dgvr = dataGridView.Rows[index];//获取选中行的下一行
dataGridView.Rows.RemoveAt(index);//删除原选中行
dataGridView.Rows.Insert((index + 1), dgvr);//将选中行的上一行插入到选中行的后面
dataGridView.Rows[index].Selected = false;
for (int i = 0; i < dataGridView.Rows[index].Cells.Count; i++)
{
dataGridView.Rows[index].Cells[i].Selected = false;
}
index = index + 1 > dataGridView.RowCount - 1 ? 0 : index + 1;
dataGridView.Rows[index].Selected = true;//选中这行
dataGridView.CurrentCell = dataGridView.Rows[index].Cells[0];//重新设置活动单元格
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 上移
/// </summary>
/// <param name="dataGridView"></param>
public void MoveToUpRow(DataGridView dataGridView)
{
try
{
var index = dataGridView.CurrentCell.RowIndex;//获取当前活动行的索引
var row = dataGridView.Rows[index];
if (row != null)
{
if (index > 0)//如果该行不是第一行
{
DataGridViewRow dgvr = dataGridView.Rows[index - 1];//获取选中行的上一行
dataGridView.Rows.RemoveAt(index - 1);//删除原选中行的上一行
dataGridView.Rows.Insert((index), dgvr);//将选中行的上一行插入到选中行的后面
for (int i = 0; i < dataGridView.RowCount; i++)//选中被操作的行
{
if (i > index)
{
index = index - i - 1 < 0 ? 0 : index - i - 1;
dataGridView.Rows[index].Selected = true;
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}