找回密码
 立即注册

QQ登录

只需一步,快速开始

wangleiecho

中级会员

26

主题

94

帖子

658

积分

中级会员

积分
658

活字格认证

wangleiecho
中级会员   /  发表于:2012-9-11 15:16  /   查看:7098  /  回复:8
版主好,
   我使用farpoint的时候发现,如果我想在带有farpoint的窗体获取系统的快捷键,比如:F2,F3会被farpoint捕捉而不是被系统的form捕捉,请问有什么好方法处理吗?比如屏蔽掉farpoint的指定快捷键?
多谢版主

8 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-9-11 15:41:00
沙发
wangleiecho 你好,很久没见你上论坛

关于屏蔽快捷键的方法可以先参考这篇文章:http://gcdn.grapecity.com/showtopic-4107.html

如果有问题,可及时联系。
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-9-11 16:07:00
板凳
多谢版主记得我啊,
我想问下版主,是不是c#的keydown事件 应该注册一个全局的 可以在无焦点状态下捕捉事件,而不是屏蔽farpoint的呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-9-11 20:35:00
地板
抱歉,我没能完全理解这句话的意思
是不是c#的keydown事件 应该注册一个全局的 可以在无焦点状态下捕捉事件,而不是屏蔽farpoint的呢?

这里的全局KeyDown是只Form的还是Spread的,如果输入焦点在Spread上的话,必须通过2楼中的方法才能获得KeyDown事件。
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-9-12 17:24:00
5#
回复 4楼dof的帖子

keydown 是form的,多谢版主,2楼的屏蔽farpoint的快捷键方法可以用
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-9-13 11:59:00
6#
如果是Form上面的键盘事件,你可以考虑重写Form的ProcessKeyPreview方法:
  1.     protected override bool ProcessKeyPreview(ref Message m)
  2.     {
  3.         return base.ProcessKeyPreview(ref m);
  4.     }
复制代码
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-10-9 09:30:00
7#
回复 6楼dof的帖子

好的 多谢版主 问题解决了
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-10-9 09:57:00
8#
感谢版主在2楼提供的方法,但是有一点小的修改,解决办法:
如果想在farpoint上面按快捷键,而不被farpoint扑捉,只被窗体捕捉
FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();
   im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
   im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);

------------------------------------------------------------------------
FarPoint.Win.Spread.SpreadActions.MoveToNextRow 这一句应该改成FarPoint.Win.Spread.SpreadActions.None

然后可以 使用 重写窗体的
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
}
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-9 15:56:00
9#
谢谢反馈以上信息。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部