找回密码
 立即注册

QQ登录

只需一步,快速开始

qiuzhilv007

中级会员

34

主题

85

帖子

620

积分

中级会员

积分
620

活字格认证微信认证勋章

qiuzhilv007
中级会员   /  发表于:2015-10-12 13:51  /   查看:9058  /  回复:7
Multirow8在CellEditedFormattedValueChanged事件中
GcNumberCell类型单元格会触发两次,e.Reason分别为TextChanged和ValueChanged。
想问下这两次有何区别,因不想让其触发两次,应该过滤掉哪个才好?谢谢
另外,我从Sheet4.0升到Multirow8,CellEditedFormattedValueChanged对应以前的CellNotify,
想问下这样对应是否可以

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-10-12 17:45:00
沙发
回复 1楼qiuzhilv007的帖子

谢谢你的反馈。
由于4.0版本已经停止更新和维护,我们不确认在4.0的用法。
需要更多的时间调查下该版本才能给你回复,也希望你能将功能需求描述给我们,以便我们能够更快的了解你的产品的业务逻辑。
很抱歉给你带来的不便。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
qiuzhilv007
中级会员   /  发表于:2015-10-13 12:07:00
板凳
Multirow8在CellEditedFormattedValueChanged事件中
GcNumberCell类型单元格会触发两次,e.Reason分别为TextChanged和ValueChanged。
想问下这两次有何区别,因不想让其触发两次,应该过滤掉哪个才好?谢谢
qiuzhilv007 发表于 2015-10-12 13:52:00

好的,那是另外的问题。
能否回答下以上引用的问题,那时8.0的
回复 使用道具 举报
Carl
版主   /  发表于:2015-10-13 14:02:00
地板
TextChanged和ValueChanged保留哪一个要看你的需求。
大多数情况下TextChanged会和ValueChanged个发一次,
但是有些情况,Text发生了变化,Value可以不变。
比如当在GcNumberCell中输入 “1.0”的时候,输入“1”的时候会触发TextChanged和ValueChanged,
但是输入“.”和“0”的时候只有TextChanged,这个时候Value保持为 1 。

评分

参与人数 1金币 +999 满意度 +5 收起 理由
Alice + 999 + 5 xiexie

查看全部评分

愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-13 14:04:00
5#
回复 3楼qiuzhilv007的帖子

和winform的标准的控件一样,分为text和value的概念。
value指的是存储的值,Text指的是展示的文字。两者有可能是不一致的。比如也许你显示的是性别(男/女),但值也许是bool类型(true, false)
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Carl
版主   /  发表于:2015-10-13 16:02:00
6#
关于 El Tabelle 中的CellNotify事件,查了一下代码,发现CellNotify会把当前Editor的事件包装一下然后转发出来。
触发CellNotify的时机有:
ButtonEditor的Click,
CheckBoxEditor的Click和CheckedChanged,
ComboBoxEditor的DropDownClose,DropDownOpen,SelectedIndexChanged,TextChanged,InvalidInput,EditStatuesChanged,
DateEditor的SpinUp,SpinDown,DropDownClose,DropDownOpen,InvalidRange,InvalidValue,InvalidInput,TextChanged,EditStatuesChanged,
MaskEditor的SpinUp,SpinDown,InvalidInput,TextChanged,EditStatuesChanged,
NumberEditor的SpinUp,SpinDown,DropDownClose,DropDownOpen,PopupOpen,PopupClose,InvalidRange,InvalidInput,TextChanged,EditStatuesChanged,
RadioGroupEditor的Click,SelectedIndexChanged,
SuperiorComboEditor的SpinUp,SpinDown,DropDownClose,DropDownOpen,InvalidInput,TextChanged,EditStatuesChanged,SelectedIndexChanged,
RichTextBoxEditor的Click和TextChanged,
TextEditor的TextChanged,EditStatuesChanged,DropDownClose,DropDownOpen,InvalidInput,HistoryChanging,
代码中找到的有这些。
这些事件有的在MultiRow8中有对应的事件,比如CellClick,
还有一些没有对应的事件,这种情况可以在MultiRow8中使用EditingControlShowing事件,拿到对应的EditingControl,根据不同的EditingControl,处理不同的事件。
具体怎么对应还要看你原来的项目在CellNotify里面都干嘛了。

评分

参与人数 1金币 +999 满意度 +5 收起 理由
Alice + 999 + 5 xiexie

查看全部评分

愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握
回复 使用道具 举报
qiuzhilv007
中级会员   /  发表于:2015-10-14 14:42:00
7#
回复 6楼Carl的帖子

非常感谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-10-15 09:26:00
8#
回复 7楼qiuzhilv007的帖子

不用客气
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部