先在方法中加入2行代码
 gvTask.AddNewRow(); //会触发事件
            gvTask.OptionsBehavior.Editable = true;//保存更改内容
//下面是事件
private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) 
  
        { 
  
  
            ColumnView View = sender as ColumnView; 
  
  
            View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //复制最后一行的数据到新行 
  
  
            View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //复制最后一行的数据到新行 
  
  
        } 
你也可以根据需要更改,流程就是这样

解决方案 »

  1.   


    你好,我用了AddNewRow,但是并没有触发InitNewRow事件,这个是什么情况?
      

  2.   

    你要选择gridview1找到他的InitNewRow事件,双击
      

  3.   


    我拖了个空白的控件测试,发现也并没有触发嘛,这个是要设置什么属性吗?public partial class A : DevExpress.XtraEditors.XtraForm
        {
            public A()
            {
                InitializeComponent();
                this.gridView1.InitNewRow += gridView1_InitNewRow;
            }        private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
            {
            }        private void simpleButton1_Click(object sender, EventArgs e)
            {
                this.gridView1.AddNewRow();
            }
        }
      

  4.   


    我拖了个空白的控件测试,发现也并没有触发嘛,这个是要设置什么属性吗?public partial class A : DevExpress.XtraEditors.XtraForm
        {
            public A()
            {
                InitializeComponent();
                this.gridView1.InitNewRow += gridView1_InitNewRow;
            }        private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
            {
            }        private void simpleButton1_Click(object sender, EventArgs e)
            {
                this.gridView1.AddNewRow();
            }
        }
    你设置 newRow的 显示位置了么
      

  5.   


    我拖了个空白的控件测试,发现也并没有触发嘛,这个是要设置什么属性吗?public partial class A : DevExpress.XtraEditors.XtraForm
        {
            public A()
            {
                InitializeComponent();
                this.gridView1.InitNewRow += gridView1_InitNewRow;
            }        private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
            {
            }        private void simpleButton1_Click(object sender, EventArgs e)
            {
                this.gridView1.AddNewRow();
            }
        }
    你设置 newRow的 显示位置了么你好,我测试的是一个空白的控件,没有数据源绑定,仅仅是通过AddNewRow方法看是否触发,InitNewRow 事件,结果发现没有触发。另外,程序里面的控件也是没有绑定数据源的,但是是通过以下代码添加commodityBusiness.GetCommodityListInId(commodityIdList).ForEach(item =>
                    {
                        this.gridView1.AddNewRow();                                //此处没有触发事件                    this.gridView1.SetFocusedRowCellValue("CommodityNumber", item.CommodityNumber);
                        this.gridView1.SetFocusedRowCellValue("CommodityName", item.CommodityName);
                        this.gridView1.SetFocusedRowCellValue("Unit", item.Unit);
                        this.gridView1.SetFocusedRowCellValue("UnitPrice", item.UnitPrice);
                        this.gridView1.SetFocusedRowCellValue("Count", item.Count);
                    });
      

  6.   

    刚刚在youtube视频里面看了一个GridControl的InitNewRow事件的一个例子,里面的代码非常简单,但是点击按钮时候能触发此事件,我就开始怀疑了到底是不是13.1.8的这个版本的这个事件有Bug
    https://www.youtube.com/watch?v=uSwClk_s9rA
    下面是youtube的截图