找回密码
 立即注册

QQ登录

只需一步,快速开始

GPCT

初级会员

30

主题

76

帖子

232

积分

初级会员

积分
232

活字格认证

GPCT
初级会员   /  发表于:2014-10-28 17:36  /   查看:7681  /  回复:5
你好!

我们有一个画面使用了C1FlexGrid,这个Grid里面允许用户输入一些数据。
当用户使用键盘上的左右按键进入到一个Cell的时候,默认会将这个Cell全选,
然后再一次按下键盘上的左右按键时,会在当前的Cell内部逐个字符转移输入光标。

但是当我们升级到最新版的C1之后,发现行为有所变化,例如如下图片:



旧版本: 当焦点在当前选中的这个Cell的时候,按下键盘的左方向键,那么光标会进入这个Cell,从最末一位开始向前移动。
新版本:当焦点在当前选中的这个Cell的时候,按下键盘的左方向键,那么光标不会进入这个Cell,而是转移到左边的相邻Cell。

请问:有没有办法将新版本的行为改成和旧版本一样?

旧版本: 2.6.20082.380
新版本: 4.6.20142.842

我们做了个Demo来阐述这个问题,请参考!


拜托了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-10-29 10:13:00
沙发
回复 1楼GPCT的帖子

在本机测试Sample3和Sample4的效果是一致的。
测试步骤:
1.运行exe。
2.选择一个单元格。
3.按下键盘右键。
---会跳到下一个单元格。

需求是:进入本单元格的编辑状态,所以思路是,c1FlexGrid的PreviewKeyDown事件处理改变选择和进入编辑状态的行为。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
GPCT
初级会员   /  发表于:2014-10-29 15:21:00
板凳
Sample3中,先在一个Cell输入内容,例如“123456”,将输入焦点放到相邻右边的Cell,
按下键盘的左键,发现进入到刚刚有输入值的Cell,而且已经全选,再一次按下键盘左键,发现在“123456”中转移输入符号。

而Sample4中,不会进入到“123456”内容中转移焦点。

如果还不能再现,可以拨打分机号264,到现场查看。谢谢了!
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-29 16:46:00
地板
回复 3楼GPCT的帖子

根据你的提示,问题已经重现。
考虑解决此问题的方法是:EnterCell事件触发,在C1FlexGrid进入编辑状态后,获取this.C1FlexGrid.Editor as TextBox,就可以对该TextBox的选择进行操作,比如更改SelectionLength,SelectionStart。还有Select方法可以供选择。
另外在编辑状态下,按下键盘,还可以触发,KeyDownEdit/KeyUpEdit/KeyPressEdit事件。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
GPCT
初级会员   /  发表于:2014-11-24 15:55:00
5#
对不起,忘记了回复!
我们已经按照你的建议找到了一些回避方案,谢谢你的帮助!
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-11-24 17:54:00
6#
回复 5楼GPCT的帖子

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

葡萄城控件服务团队

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