1、
Winform中DataGridView的AllowUserToAddRows为true;
当在最后一行输入值的时候,会默认自动在末尾添加新的一行,这个是触发系统的哪个事件呢。
如何代码实现这个功能呢?
2、
使用 dgv.Rows.Add() 可以添加新的一行,但是默认是显示在选择行的上面,而不是末尾,该如何解决呢?

解决方案 »

  1.   

    DataGridView本身不是有自动增加一行的功能吗?
      

  2.   

    补充一点:3、
    如果不是直接在cell里输入值,使用 dgv.Rows[0].Cells[0].Value = "Test";
    DataGridView也不会自动添加新空行。 这是为什么呢?怎么解决呢?
      

  3.   

    1。试一下RowsAdded
    2.是在末尾的,你看错了,只是光标还在第一行。又或者你启动了根据某一列排序。
      

  4.   

    你只是设置了某一单元格的值,当然不会自动添加新空行,如果使用rows.Add()就可以了。至于直接输,就相当于rows.Add()了啊,你要是在新行的前面那些行输,并不会又增一行啊。新增的那行属于“未提交行”,只有变成了真正的行,才会自动增加新行。
      

  5.   

    我没表达清楚。不好意思。
    我的意思是在第三点中。如果用赋值的办法。这一条记录DataGridView默认它还在编辑,而没有储存起来,左边还有一个“*”在,如果是用键盘输入或复制黏贴的办法,DataGridView会生成一空行,这个“*”就会自动跳到这个空行
      

  6.   

    请帮忙看一下这个问题:
    http://topic.csdn.net/u/20100928/11/299dcda9-6844-4c95-bee7-971802476bc4.html
    谢谢!
      

  7.   

    这条记录因为实际不存在。如何能获取到这个Row然后提交?
      

  8.   

    获取它的值根其他行一样的。NewRowIndex能找到它的索引.至于想让它提交,然后自动添加新行,我认为只有Add()了。
      

  9.   

    唉…… 只能先添加一个空行,然后把值赋给这个空行的cell。
    不能直接对未提交的row进行add操作
      

  10.   

    DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新行的场合下,DataGridView的最后一行就是新追加的行(*行)
    DataGridView.Rows.Add()默认就是追加在最后
    设置位置
    dataGridView.Rows.Insert(rowsIndex,new object[]{"",""} );
      

  11.   

    忘记是不是有insert这个方法,因为我很少用VS自带的控件
      

  12.   

    不过还是很想知道add和insert的区别……
      

  13.   

    The Insert(Int32, array<Object>[]()[]) method adds an unshared row to the DataGridViewRowCollection.add method add a blank row at the end......