找回密码
 立即注册

QQ登录

只需一步,快速开始

cqtk

银牌会员

42

主题

79

帖子

2895

积分

银牌会员

积分
2895

活字格认证

cqtk
银牌会员   /  发表于:2012-5-31 10:24  /   查看:5374  /  回复:6
我在重写ProcessCmdKey方法的时候,不管怎么样都无法捕捉回车键,其它按键都可以的,如果不是在Spread中按回车键(即Spread失去焦点),也可以捕捉到回车键,请问如何解决这个问题呢?
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            this.Text = keyData.ToString();
            return base.ProcessCmdKey(ref msg, keyData);
        }
this表示的是一个窗体(WinForm)对象

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-31 12:29:00
沙发
Spread对Enter有默认的处理行为,你添加下面的代码看能否满足你的需求:
  1.             FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();

  2.             im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  3.             im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
  4.             im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  5.             im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
复制代码
回复 使用道具 举报
cqtk
银牌会员   /  发表于:2012-5-31 14:05:00
板凳
这个方法已经试过了,不行的
回复 使用道具 举报
cqtk
银牌会员   /  发表于:2012-5-31 14:35:00
地板
问题的原因找到了,当调用this.fpSpread1.Open(XML模板文件)后,上述方法就失效了,如果没有调用这个方法,使用版主的方法可捕捉到Enter键,请问这要怎么解决?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-31 15:00:00
5#
可以在this.fpSpread1.Open(XML模板文件)之后重新设置以上代码。
回复 使用道具 举报
cqtk
银牌会员   /  发表于:2012-6-1 09:07:00
6#
已经解决,谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-1 15:49:00
7#
不客气,谢谢你将结果告诉我们。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部