//dataGridView1是控件名称
//向上移动
private void butUp_Click(object sender, EventArgs e)
{
UpDataGridView(dataGridView1);
}
//向上移动
private void butDown_Click(object sender, EventArgs e)
{
DownDataGridView(dataGridView1);
}
//置顶
private void butTop_Click(object sender, EventArgs e)
{
TopDataGridView(dataGridView1);
}
//置底
private void butBottom_Click(object sender, EventArgs e)
{
BottomDataGridView(dataGridView1);
}
/// <summary>
/// 上移
/// </summary>
/// <param name="dataGridView"></param>
public static void UpDataGridView(DataGridView dataGridView)
{
try
{
DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
if (dgvsrc.Count > 0)
{
int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
if (index > 0)//如果该行不是第一行
{
DataGridViewRow dgvr = dataGridView.Rows[index - dgvsrc.Count];//获取选中行的上一行
dataGridView.Rows.RemoveAt(index - dgvsrc.Count);//删除原选中行的上一行
dataGridView.Rows.Insert((index), dgvr);//将选中行的上一行插入到选中行的后面
for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
{
dataGridView.Rows[index - i - 1].Selected = true;
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 下移
/// </summary>
/// <param name="dataGridView"></param>
public static void DownDataGridView(DataGridView dataGridView)
{
try
{
DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
if (dgvsrc.Count > 0)
{
int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
if (index >= 0 & (dataGridView.RowCount - 1) != index)//如果该行不是最后一行
{
DataGridViewRow dgvr = dataGridView.Rows[index + 1];//获取选中行的下一行
dataGridView.Rows.RemoveAt(index + 1);//删除原选中行的上一行
dataGridView.Rows.Insert((index + 1 - dgvsrc.Count), dgvr);//将选中行的上一行插入到选中行的后面
for (int i = 0; i < dgvsrc.Count; i++)//选中移动后的行
{
dataGridView.Rows[index + 1 - i].Selected = true;
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 置顶
/// </summary>
/// <param name="dataGridView"></param>
public static void TopDataGridView(DataGridView dataGridView)
{
try
{
DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
if (dgvsrc.Count > 0)
{
int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
if (index > 0)//如果该行不是第一行
{
DataGridViewRow dgvr = dataGridView.Rows[index];//获取选中行的上一行
dataGridView.Rows.RemoveAt(index);//删除原选中行的上一行
dataGridView.Rows.Insert(0, dgvr);//将选中行的上一行插入到选中行的后面
for (int i = 0; i < dataGridView.Rows.Count; i++)//选中移动后的行
{
if (i != 0)
{
dataGridView.Rows[i].Selected = false;
}
else
{
dataGridView.Rows[i].Selected = true;
}
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 置底
/// </summary>
/// <param name="dataGridView"></param>
public static void BottomDataGridView(DataGridView dataGridView)
{
try
{
DataGridViewSelectedRowCollection dgvsrc = dataGridView.SelectedRows;//获取选中行的集合
if (dgvsrc.Count > 0)
{
int index = dataGridView.SelectedRows[0].Index;//获取当前选中行的索引
if (index < dataGridView.Rows .Count - 1)//如果该行不是第一行
{
DataGridViewRow dgvr = dataGridView.Rows[index];//获取选中行的上一行
dataGridView.Rows.RemoveAt(index);//删除原选中行的上一行
int nCount = dataGridView.Rows.Count;
dataGridView.Rows.Insert(nCount, dgvr);//将选中行的上一行插入到选中行的后面
for (int i = 0; i < dataGridView.Rows.Count; i++)//选中移动后的行
{
if (i != dataGridView.Rows.Count -1)
{
dataGridView.Rows[i].Selected = false;
}
else
{
dataGridView.Rows[i].Selected = true;
}
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
C# DataGridView行位置调换(上移、下移、置顶、置底)
猜你喜欢
转载自blog.csdn.net/cn_514/article/details/90904846
今日推荐
周排行