解决使用spread时快捷键无反应的情况

解决使用spread时快捷键无反应的情况

用过spread的朋友可能会碰到这么一种情况:
如果我的画面中有快捷键,比如说“F1”、“F2”、“F3”等等,当你的焦点在spread里边时,
你会发现你定义的那些快捷键有时候不反应,原因是焦点陷入spread里面,导致画面捕捉不到快捷键。
给个画面例子:


对于以上画面中的那些快捷键(画面底部),如果焦点在spread中,就会可能导致“F3”不好用。
 
解决方法:
在你的画面的构造函数里边加上以下代码
FarPoint.Win.Spread.InputMap im;
            
            
// spdResult是你画面中定义的spread的名字。

            
// WhenFocused:焦点离开时

            im 
=  spdResult.GetInputMap(InputMapMode.WhenFocused);

            
// 按回车键和TAB时,焦点移动到下一个单元格

            im.Put(
new  Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
            im.Put(
new  Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);

            
// 按→、↓、←、↑时,焦点移动

            im.Put(
new  Keystroke(Keys.Left,Keys.None),SpreadActions.MoveToPreviousColumn);
            im.Put(
new  Keystroke(Keys.Right,Keys.None),SpreadActions.MoveToNextColumn);

            
// 使快捷键有效

            im.Put(
new  Keystroke(Keys.F1,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F2,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F3,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F8,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F10,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F12,Keys.None),SpreadActions.None);

            
// WhenAncestorOfFocused:得到焦点时

            im 
=  spdResult.GetInputMap(InputMapMode.WhenAncestorOfFocused);
            im.Put(
new  Keystroke(Keys.Enter,Keys.None),SpreadActions.MoveToNextColumnWrap);
            im.Put(
new  Keystroke(Keys.Tab,Keys.None),SpreadActions.MoveToNextColumnWrap);

            im.Put(
new  Keystroke(Keys.Left,Keys.None),SpreadActions.MoveToPreviousColumn);
            im.Put(
new  Keystroke(Keys.Right,Keys.None),SpreadActions.MoveToNextColumn);

            im.Put(
new  Keystroke(Keys.F1,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F2,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F3,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F8,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F10,Keys.None),SpreadActions.None);
            im.Put(
new  Keystroke(Keys.F12,Keys.None),SpreadActions.None);


- 以上是网上作者做的(sunjianbo.cublog.cn)
还有解决办法在后面.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值