zhata 发表于 2013-7-10 12:24:00

如何让以下操作产生CellEndEdit事件或有等价事件?

1.用鼠标或键盘或粘贴改变CheckboxCell的值不会触发CellEndEdit事件;
2.粘贴数据到MultiRow中也不会触发CellEndEdit事件;
问题是:希望区分Cell.Value值的改变是由代码运算触发的还是操作人员用鼠标或键盘或粘贴操作触发的;
我现在是通过CellEndEdit事件来区分,但碰到上面两个问题。请指教,谢谢。

wedy.wang 发表于 2013-7-10 14:44:00

回复 1楼zhata的帖子

你可以尝试使用CellValueChanged事件和CellEditedFormattedValueChanged事件。
其中:通过CellValueChanged可以解决通过代码设置Cell.Value的case;通过CellEditedFormattedValueChanged可以解决鼠标键盘操作。

zhata 发表于 2013-7-10 16:03:00

在填充ColumnHeaders中的Cell时也会触发CellValueChanged事件,这样就无法区分是用户操作引起的还是填充数据引发的事件,要求填充数据时
不要触发CellValueChanged事件,这种要求能不能实现?

wedy.wang 发表于 2013-7-10 16:46:00

回复 3楼zhata的帖子

无法区分。
如果你填充数据的逻辑很集中,并且是个独立方法,你自己可以添加一个flag,标记为true表示是你自己在填充数据,然后在CellValueChanged事件当中判断这个flag,如果是true,忽略处理,并将flag设置为false;如果是false表示用户操作,处理。

ZenosZeng 发表于 2013-10-18 17:57:00

:D
页: [1]
查看完整版本: 如何让以下操作产生CellEndEdit事件或有等价事件?