EditedFormattedValue和Value
斑竹,请教一下,如下理解是否正确?EditedFormattedValue:在编辑过程中设置和显示的值,还没有提交给Value,如在一个cell中录入数据的时候,每键入一个字符都会触发CellEditedFormattedValueChanged事件,但不会触发CellValueChanged事件,之后Commit之后才会触发CellValueChanged。
Value:编辑提交之后,根据EditedFormattedValue的值设置Value的值。
以上两个值在某些时候可以不相等。
需求:在一个Cell中输入5,然后按下Tab键(MoveToNextCell),在CellValidating事件中,我希望某些条件下,变更刚才输入的值,比如将5变为3,
(1)这时我改变Cell的Value=3,当进入EndEdit事件是Value又恢复成5了,它用EditedFormattedValue把Value设置回去了。
或者
(2)我尝试改变EditedFormattedValue的值,失败啊,只读…… 没接口………… 你的理解是对的。
对于你的需求,你可以在CellValidating事件中通过修改gcMultiRow.EditiongControl的值来改变5为3.
void gcMultiRow1_CellValidating(object sender, GrapeCity.Win.MultiRow.CellValidatingEventArgs e)
{
if (this.gcMultiRow1.EditingControl != null)
{
(this.gcMultiRow1.EditingControl as TextBox).Text = "3";
}
}
回复 2楼dafo的帖子
我使用的GcNumberCell类型的Cell,设置了输入和显示的格式,如果直接改变Text,需要Format
所以我将代码移植了,在CellValidating中先将要设置的数字保存,然后在CellEedEdit中设置Cell的Value,这是设置Value是可以起作用的。 GcNumberCell的EditingContol是GcNumber控件,可以直接改Value的,不会影响Format的。 回复 4楼dafo的帖子
好的,我尝试一下,再答复,谢谢斑竹! 回复 4楼dafo的帖子
经过验证好用。
类似如下:
TryCast(Me.dpvLine.EditingControl, InputMan.GcTextBoxEditingControl).FormattedValue = strBuf 回复 6楼yinzhm的帖子
好的。能够解决问题就好。:mj72:
页:
[1]