找回密码
 立即注册

QQ登录

只需一步,快速开始

xuxs

高级会员

50

主题

138

帖子

1086

积分

高级会员

积分
1086

活字格认证微信认证勋章

xuxs
高级会员   /  发表于:2014-6-24 17:28  /   查看:5500  /  回复:4
我发现C1FlexGrd处于编辑状态下,如果按下shift+enter键后是清楚单元格中的内容
现在我需要屏蔽掉这个功能,同时shift+enter键还要实现别的功能
请问版主有什么办法吗

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-6-25 13:24:00
沙发
回复 1楼xuxs的帖子

C1FlexGrid提供了KeyDownEdit和KeyUpEdit事件,在编辑状态下按下键的时候会触发這两个事件。

我使用KeyDownEdit事件来处理,当按下shift+enter键的时候,不去删除内容。代码如下:
  1. void c1FlexGrid1_KeyDownEdit(object sender, KeyEditEventArgs e)
  2.         {
  3.             if (e.Shift && e.KeyCode == Keys.Enter)
  4.             {
  5.                 e.Handled = true;
  6.                 //自定义需要实现的功能
  7.                 DoAction();
  8.             }
  9.         }
复制代码


这样子实现后出现了一个新问题:在编辑状态下获取C1FlexGrid.Editor.Text是有值的,但这个值显示不出来。
这个新问题我作为Bug处理中。若你有更好的解决方法,希望不吝赐教。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2014-6-25 16:21:00
板凳
单纯屏蔽掉shift+enter是没有问题的,我也可以让值仍然显示出来,方法是重载windows的processCmdKey方法,在该方法中截获shift+enter消息即可,但是现在我面临的问题是,我们的需求要求shift+enter要实现其他的功能,同时还不能删除editor中的值。
如果从写processCmdKey方法,键盘消息就阻塞掉了(就像hook),因此是对shift+enter键的绝对屏蔽
贵公司的Spread组件就有专门的属性来对热键进行控制的,不知道C1的产品是否有类似的功能呢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-25 16:56:00
地板
回复 3楼xuxs的帖子

你说的问题我理解了,但C1没有和Spread类似的方法,对热键进行修改。
你的需求我记录下来反馈到产品组,需要大约2-3天能收到回复。
如果有进一步的消息,我再和你联系。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-26 15:43:00
5#
回复 3楼xuxs的帖子

很抱歉,3楼提到的功能暂不提供。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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