日期:2014-05-20  浏览次数:20973 次

求救:关于winform datagridview问题
在datagridview中,双击一行数据,进入该行数据的编辑界面,编辑后点击保存,返回到达datagridview所在的界面。
问:如何把当前编辑的那行数据显示在datagridview的第一行?意思就是把编辑的那行移动到第一行。不需要单条的插入,只要第一行显示编辑的那条记录就行了。

我现在只能把焦点定位在那一行,但是不知道如何把它移动到第一行。
请各位大哥帮忙,谢谢!

------解决方案--------------------
试验了一下。。。比较麻烦。。。
private void button4_Click(object sender, EventArgs e)
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn( "ID ", typeof(string)));
dt.Columns.Add(new DataColumn( "Name ", typeof(string)));

DataRow dr = dt.NewRow();
dr[0] = "1 ";
dr[1] = "t1 ";
dt.Rows.Add(dr);

DataRow dr2 = dt.NewRow();
dr2[0] = "2 ";
dr2[1] = "t2 ";
dt.Rows.Add(dr2);

this.dataGridView1.DataSource = dt;
}
catch { }
}

private DataGridViewRow dvr;
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
try
{
int i = e.RowIndex;
dvr = dataGridView1.Rows[i];
DataTable dt = dataGridView1.DataSource as DataTable;
DataRowView drv = dvr.DataBoundItem as DataRowView;
DataRow newRow = dt.NewRow();
newRow.ItemArray = drv.Row.ItemArray;
dt.Rows.Remove(drv.Row);
dt.Rows.InsertAt(newRow, 0);
dt.AcceptChanges();
//dataGridView1.Rows[0].Selected = true;
}
catch (Exception ex)
{
throw ex;
}
}
------解决方案--------------------
那你就是设置这个属性了:
DataGridView.FirstDisplayedScrollingRowIndex 属性

比如:
this.dataGridView1.FirstDisplayedScrollingRowIndex = 5;
这样会使dataGridView1的索引是5的记录尽量的显示到了第一行上.