找回密码
 立即注册

QQ登录

只需一步,快速开始

q406157290

高级会员

124

主题

531

帖子

1359

积分

高级会员

积分
1359

活字格认证

q406157290
高级会员   /  发表于:2016-3-22 08:29  /   查看:3489  /  回复:7
C1FlexGrid 新追加行时,按Esc撤销新追加操作时会触发什么 事件吗?
也就是按ESC撤销操作时会触发C1FlexGrid的哪个事件呢,请不要回复触发keyDown事件,我想问的是触发C1FlexGrid哪个事件

7 个回复

倒序浏览
KNight
中级会员   /  发表于:2016-3-22 09:11:46
沙发
你是想问按ESC,C1FlexGrid都做了什么事情么?
回复 使用道具 举报
q406157290
高级会员   /  发表于:2016-3-22 09:41:57
板凳
KNight 发表于 2016-3-22 09:11
你是想问按ESC,C1FlexGrid都做了什么事情么?

是这样的我在CellEditEnded中有个处理
  1. if (((ListCollectionView)flexGrid.CollectionView).IsAddingNew)
  2.             {
  3.                 isFlexGridNewRow = true;
  4.             }
复制代码

某些时候用isFlexGridNewRow 来判断是否新追加一行数据
但是当新规行时isFlexGridNewRow 被设置成True了,可是我按ESC撤销新规行后,我在那个事件里可以再把isFlexGridNewRow 设置成False呢
如果不设置回来这样就会多添加了一行数据,但实际已经撤消了新规操作
回复 使用道具 举报
KNight
中级会员   /  发表于:2016-3-22 10:53:37
地板
那为什么不能在KeyDown事件里处理呢?如果绑定的数据源是ListCollectionView类型,直接在KeyDown事件里判断是否是ESC键,如果是,直接调用ListCollectionView.CancelNew()不就可以撤销新增行,此时也可以将isFlexGridNewRow 标记为false了。
回复 使用道具 举报
q406157290
高级会员   /  发表于:2016-3-22 11:05:21
5#
KNight 发表于 2016-3-22 10:53
那为什么不能在KeyDown事件里处理呢?如果绑定的数据源是ListCollectionView类型,直接在KeyDown事件里判断 ...

不行的, 有可能单元格处于编辑状态按ESC只是为了退回到单元格编辑前状态,而不是要取消新追加行
我自己找到解决方法了
((ListCollectionView)flexGrid.CollectionView).CurrentChanged += FlexGrid_CurrentChanged;
在这个里面处理的
还是非常谢谢您的帮助
回复 使用道具 举报
KNight
中级会员   /  发表于:2016-3-22 11:27:15
6#
如果新增行处于编辑状态,ESC优先处理退出编辑状态而不是直接取消新增行的,即使在KeyDown里增加对ESC按键的判断处理;

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
q406157290
高级会员   /  发表于:2016-3-22 13:05:19
7#
KNight 发表于 2016-3-22 11:27
如果新增行处于编辑状态,ESC优先处理退出编辑状态而不是直接取消新增行的,即使在KeyDown里增加对ESC按键 ...

好的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-3-22 14:40:10
8#
KNight 发表于 2016-3-22 11:27
如果新增行处于编辑状态,ESC优先处理退出编辑状态而不是直接取消新增行的,即使在KeyDown里增加对ESC按键 ...

@KNight永远很给力。
两个人讨论的很激烈
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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