dataGridview对已设 AllowUserToAddRows= true,
dataGridview有一个单元格,双击之后,弹出一个查询帮助窗口,选中一个查询结果后,返回到该单元格上,此时要求在Datagridveiw最后一行新加一行
重写Datagridveiw
protected override void OnCellDoubleClick(DataGridViewCellEventArgs e)
{
....
if (e.ColumnIndex == 0)
{
QueryForm form = new QueryForm();
form.ShowDialog(this);
......
this[0, e.RowIndex].Value = form.ReturnValue;
this.Rows.Add();
}
}上段代码虽能实现,但是新加的行,不出现在最后一行,而是向前插。而且每选一次都向前插一行。另外,点当前行的其他列也在最后一行新增一行。不符合我的要求。
我的要求:第一次双击单元格选值后新加的行放在最后一行,如果发现选错,重新双击当前单元格选值后,此时不新加行(因为已经有新加行),而且要求点当前行的其他列也不在最后行新增一行.
dataGridview有一个单元格,双击之后,弹出一个查询帮助窗口,选中一个查询结果后,返回到该单元格上,此时要求在Datagridveiw最后一行新加一行
重写Datagridveiw
protected override void OnCellDoubleClick(DataGridViewCellEventArgs e)
{
....
if (e.ColumnIndex == 0)
{
QueryForm form = new QueryForm();
form.ShowDialog(this);
......
this[0, e.RowIndex].Value = form.ReturnValue;
this.Rows.Add();
}
}上段代码虽能实现,但是新加的行,不出现在最后一行,而是向前插。而且每选一次都向前插一行。另外,点当前行的其他列也在最后一行新增一行。不符合我的要求。
我的要求:第一次双击单元格选值后新加的行放在最后一行,如果发现选错,重新双击当前单元格选值后,此时不新加行(因为已经有新加行),而且要求点当前行的其他列也不在最后行新增一行.
不在新增的话,你可以为新增行的每个cell的tag的添加值,如"added"
新增的时候判断一下tag是否有值就可以了
this.Rows.Add();
--------------------------------------
你自己本来就是指定的将返回的数据放到当前行,然后增加空行,这样的效果就是在前面加了个新行(其值为选择后返回的)。
这样改改看:
int index=this.Rows.Add();
this[0,index].Value=form.ReturnValue;