private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
DataTable temp = dt.Copy();
int index = e.RowIndex; //修改索引
int num = Convert.ToInt32(dataGridView1.Rows[index].Cells[0].Value); //修改值
if (num > index + 1) //修改值大于原值
{
if (num > dataGridView1.Rows.Count - 1)
{
num = dataGridView1.Rows.Count - 1;
}
temp.Rows[index][0] = num;
for (int i = index + 1; i < num; i++)
{
temp.Rows[i][0] = Convert.ToInt32(temp.Rows[i][0]) - 1;
}
}
else if (num < index + 1) //修改值小于原值
{
if (num <= 0)
{
num = 1;
}
temp.Rows[index][0] = num;
for (int i = num - 1; i < index; i++)
{
temp.Rows[i][0] = Convert.ToInt32(temp.Rows[i][0]) + 1;
}
}
else return;
DataRow[] rows = temp.Select("","id asc");
dt.Rows.Clear();
foreach(DataRow r in rows)
{
dt.ImportRow(r);
}
dataGridView1.DataSource = dt;
}
}