C# Winform 中 dataGridView行内容上下移动的问题
求大神指点 两种方法均遇到调试不出来的困难
int rowIndex = dataGridView1.SelectedRows[0].Index;//当前选中行的索引
if (rowIndex == 0)
{
MessageBox.Show("已经是第一行了!");
return;
}
BindingList<string> list = new BindingList<string>();
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
list.Add(dataGridView1.SelectedRows[0].Cells[i].Value.ToString());
//把当前选中行的数据存入数组中
}
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
dataGridView1.Rows[rowIndex].Cells[j].Value = dataGridView1.Rows[rowIndex - 1].Cells[j].Value;
dataGridView1.Rows[rowIndex - 1].Cells[j].Value = list[j].ToString();
dataGridView1.Rows[rowIndex - 1].Selected = true;//光标选中上一行即已经移动到的这行
dataGridView1.Rows[rowIndex].Selected = false;//取消光标的所在行
}
如果是以上代码的话 调试的错误是数据表是唯一约 束 不能交换数据 实际是不能覆盖 从而达不到交换行的目的
选择的行号
int selectedRowIndex = GetSelectedRowIndex(this.dataGridView1);
if (selectedRowIndex >= 1)
{
拷贝选中的行
DataGridViewRow newRow = dataGridView1.Rows[selectedRowIndex];
删除选中的行
dataGridView1.Rows.Remove(dataGridView1.Rows[selectedRowIndex]);
将拷贝的行,插入到选中的上一行位置
dataGridView1.Rows.Insert(selectedRowIndex - 1, newRow);
选中最初选中的行
dataGridView1.Rows[selectedRowIndex - 1].Selected = true;
这个代码 调试的错误为 无法向绑定数据源中插入输入 insert中出现问题