设置了AllowUserToAddRows = True之后的问题,请教
第一,当光标放在NewRow上的时候,用鼠标点击其他控件,比如按钮,这个时候,MultiRow上的光标自动跳到Newrow的上一行第二,通过其他画面把返回值设置在NewRow上之后,没有自动追加一行
请教,怎么解决? 补充上面第二个问题
>>第二,通过其他画面把返回值设置在NewRow上之后,没有自动追加一行
光标离开NewRow之后,值被清空了 请教,继续请教 》第一,当光标放在NewRow上的时候,用鼠标点击其他控件,比如按钮,这个时候,MultiRow上的光标自动跳到Newrow的上一行
这是微软数据绑定控件的设计规范,这是一个Design。DataGridView也有同样的设计。
》>>第二,通过其他画面把返回值设置在NewRow上之后,没有自动追加一行
光标离开NewRow之后,值被清空了
GcMultiRow在数据绑定模式不允许使用下面的代码GcMultiRow.Rows.Add()/Insert().我建议你在设置画面返回值到最后一行之前,先调用数据源的AddNew方法,添加一个新行,比如“this.categoriesBindingSource.AddNew()”, 然后再将你的画面返回值设置到倒数第二行。
参考下面的代码:
if (this.gcMultiRow1.CurrentCellPosition.RowIndex == this.gcMultiRow1.RowCount - 1)
{
this.gcMultiRow1.Value = "value";
this.categoriesBindingSource.AddNew();
}
else
{
this.categoriesBindingSource.AddNew();
this.gcMultiRow1.Value = "Value";
} 我也是经过试验,用数据源追加一行的办法,效果倒是实现了
只是,方法比较恶心
不知道是我哪里做的不对,数据源追加一行之后,明细会自动增加两行,只好在数据源增加一行后,再删除最后一空行 回复 5楼loacher的帖子
如果在你在数据源增加一行之前,你的CurrentCell被放置到了NewRow上面,那么就会增加两行,这是微软数据绑定控件的一个设计,的确不是很好。可以将上面的代码略做修改:
if (this.gcMultiRow1.CurrentCellPosition.RowIndex == this.gcMultiRow1.RowCount - 1)
{
EditingActions.CancelRowEdit.Execute(this.gcMultiRow1);
this.categoriesBindingSource.AddNew();
this.gcMultiRow1.Value = "value";
}
else
{
this.categoriesBindingSource.AddNew();
this.gcMultiRow1.Value = "Value";
}
页:
[1]