找回密码
 立即注册

QQ登录

只需一步,快速开始

Hjr2350
论坛元老   /  发表于:2013-1-17 16:13  /   查看:7543  /  回复:7
打扰了

1.有这么一个需求:希望可以在编辑输入结束后(按下enter为标志)自动切换到下一个tab有效的单元格中
2.设置某些cell的tab是有效的,某些tab是无效的,最好是可以设置tab顺序
以上两条,总的来说是这样的

12755453.JPG (9.78 KB, 下载次数: 778)

7 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-17 17:18:00
沙发
回复 1楼Hjr2350的帖子

Enter键默认行为是进入编辑状态,Tab键是跳到下一个单元格,此外,无法设置每个单元格的TabIndex,只能设置单元格的TabStop属性:
  1. fpSpread1.ActiveSheet.Cells[1, 2, 1, 5].TabStop = false;
复制代码
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-1-18 08:59:00
板凳
回复 2楼dof的帖子

难道不能更改按键行为吗?我将enter的原行为解除,重新设置行为内容
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-18 10:42:00
地板
当然可以修改默认的快捷键行为:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.Reset();
  4.         fpSpread1.ActiveSheet.Cells[1, 2, 1, 5].TabStop = false;

  5.         FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();

  6.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  7.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);

  8.         im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  9.         im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);
  10.     }
复制代码
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-1-18 11:42:00
5#
我现在采用你说的这个方法,确实实现了效果但是还有一点不足
在编辑状态下,我想使用Ctrl+Key.Right/Ctrl+Key.Left,但是发现不能响应
我的代码如下:
  1.             FarPoint.Win.Spread.InputMap im;
  2.             im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  3.             im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);
  4.             //im.Put(new FarPoint.Win.Spread.Keystroke(Keys.D1, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);
  5.             im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
  6.             im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);
  7.             //im.Put(new FarPoint.Win.Spread.Keystroke(Keys.D1, Keys.Control), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap);
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-18 17:18:00
6#
回复 5楼Hjr2350的帖子

这几个键有点特殊,请参考这个文档:
http://blog.gcpowertools.com.cn/ ... 、左、右的事件.aspx
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-1-21 09:06:00
7#
非常感谢,祝你这周好心情,
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-21 11:51:00
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部