求救:关于winform datagridview问题

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

我现在只能把焦点定位在那一行,但是不知道如何把它移动到第一行。
请各位大哥帮忙,谢谢!
...全文
303 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
my44186680 2008-01-15
  • 打赏
  • 举报
回复
保存了
wzq6511 2007-03-15
  • 打赏
  • 举报
回复
接点分....
yusuyang 2007-03-15
  • 打赏
  • 举报
回复
谢谢各位兄弟,尤其hbxtlhx(平民百姓)。。。。
谢谢。
北京的雾霾天 2007-03-15
  • 打赏
  • 举报
回复
那你就是设置这个属性了:
DataGridView.FirstDisplayedScrollingRowIndex 属性

比如:
this.dataGridView1.FirstDisplayedScrollingRowIndex = 5;
这样会使dataGridView1的索引是5的记录尽量的显示到了第一行上.
hcl8260 2007-03-15
  • 打赏
  • 举报
回复
不懂帮顶
yusuyang 2007-03-15
  • 打赏
  • 举报
回复
maotin(liu) 那种就是把那一行插到第一个位置,我的意思是不要插,滚动到那一条就可以了饿
yusuyang 2007-03-15
  • 打赏
  • 举报
回复
不是单单指那一行移动到上面。。
打个比方我有20条数据,datagridview如果想编辑第18行就要拉滚动条。
当我编辑完第18行返回界面时,第18行在第一条显示,如果想看1到17行的,只能往上拉滚动条,
而不是18行在第一行。
北京的雾霾天 2007-03-15
  • 打赏
  • 举报
回复
有一点不明白,当你点击一行编辑的时候再回来那一行会滚动到别的地方去吗?
北京的雾霾天 2007-03-15
  • 打赏
  • 举报
回复
要这样就好说了:

.NET Framework 类库
DataGridView.FirstDisplayedScrollingRowIndex 属性
注意:此属性在 .NET Framework 2.0 版中是新增的。

获取或设置某一行的索引,该行是显示在 DataGridView 上的第一行。
属性值
某一行的索引,该行是显示在 DataGridView 上的第一行。
sqfeiyu 2007-03-15
  • 打赏
  • 举报
回复
1.將所選定的那一行的DataRowView刪除
2.在第一行插入一條New DataRowView,并按照選定行賦值(或在1之前就先復制)﹐開始編輯

注意﹕只能適用于不排序的DataView和Grid.添加和刪除的一定要是DataRowView﹐千萬不要刪DataRow
否則沒法取消操作了.也不能更新了
yusuyang 2007-03-15
  • 打赏
  • 举报
回复
有的,当编辑行多的话,进入编辑后返回原来界面,还要手动拉那个滚动条,去找那个数据。
alis329 2007-03-15
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5397/5397555.xml?temp=.3033563
Red_angelX 2007-03-15
  • 打赏
  • 举报
回复
帮顶~
北京的雾霾天 2007-03-15
  • 打赏
  • 举报
回复
为什么非要移动到第一行?有什么实际意义呢?
liujia_0421 2007-03-15
  • 打赏
  • 举报
回复
你的DataGridView 是直接绑定的数据吗?

如果是,直接更改数据源数据顺序,再重新绑定即可...
jackyped 2007-03-15
  • 打赏
  • 举报
回复
删除这一行,再插入
guojh021 2007-03-15
  • 打赏
  • 举报
回复
加一列,保存当前的时间,以那列倒序排列。

想了想,没试过。

在那行编辑的时,把那的时间列就置当前时间。
guojh021 2007-03-15
  • 打赏
  • 举报
回复
加一列,保存当前的时间,以那列倒序排列。

想了想,没试过。
maotin 2007-03-15
  • 打赏
  • 举报
回复
更新后,改变榜定的数据源的顺序,来实现修改行始终在第一的位置。。。。
虽然实现,不过比较麻烦,感觉不是很好用。。。
maotin 2007-03-15
  • 打赏
  • 举报
回复
试验了一下。。。比较麻烦。。。
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;
}
}

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧