找回密码
 立即注册

QQ登录

只需一步,快速开始

jingyao

注册会员

1

主题

2

帖子

35

积分

注册会员

积分
35
  • 33

    金币

  • 主题

  • 帖子

最新发帖
jingyao
注册会员   /  发表于:2016-7-8 11:10  /   查看:6701  /  回复:4
本帖最后由 jingyao 于 2016-7-8 12:01 编辑

GcNumberCell光标闪动变成文字反选怎么实现
Me.multITKWRK2.CurrentCell = Me.multITKWRK2.Rows(Me.multITKWRK2.CurrentRow.Index).Cells(16)
Me.multITKWRK2.Focus()
这么设置不好用

← key按下时
→ key按下时
← key按1下,表格编辑状态变为光标闪动,按2下时才移动到下一个cell

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-7-8 14:21:49
沙发
问题我们收到了。
谢谢您的反馈。
测试后给您回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2016-7-11 08:48:35
板凳
先定义两个自定义Action,代码如下
  1.     class EditAndMoveLeft : GrapeCity.Win.MultiRow.Action
  2.     {
  3.         public override bool CanExecute(GcMultiRow target)
  4.         {
  5.             if(target.IsCurrentCellInEditMode)
  6.             {
  7.                 return SelectionActions.MoveLeft.CanExecute(target);
  8.             }
  9.             else
  10.             {
  11.                 return EditingActions.BeginEdit.CanExecute(target);
  12.             }
  13.         }

  14.         protected override void OnExecute(GcMultiRow target)
  15.         {
  16.             if (target.IsCurrentCellInEditMode)
  17.             {
  18.                 SelectionActions.MoveLeft.Execute(target);
  19.             }
  20.             else
  21.             {
  22.                 EditingActions.BeginEdit.Execute(target);
  23.             }
  24.         }
  25.     }

  26.     class EditAndMoveRight : GrapeCity.Win.MultiRow.Action
  27.     {
  28.         public override bool CanExecute(GcMultiRow target)
  29.         {
  30.             if (target.IsCurrentCellInEditMode)
  31.             {
  32.                 return SelectionActions.MoveRight.CanExecute(target);
  33.             }
  34.             else
  35.             {
  36.                 return EditingActions.BeginEdit.CanExecute(target);
  37.             }
  38.         }

  39.         protected override void OnExecute(GcMultiRow target)
  40.         {
  41.             if (target.IsCurrentCellInEditMode)
  42.             {
  43.                 SelectionActions.MoveRight.Execute(target);
  44.             }
  45.             else
  46.             {
  47.                 EditingActions.BeginEdit.Execute(target);
  48.             }
  49.         }
  50.     }
复制代码


然后把自定义Action注册给GcMultiRow
  1.             this.gcMultiRow1.ShortcutKeyManager.Register(new EditAndMoveLeft(), Keys.Left);
  2.             this.gcMultiRow1.ShortcutKeyManager.Register(new EditAndMoveRight(), Keys.Right);
复制代码

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
jingyao
注册会员   /  发表于:2016-7-11 10:18:39
地板
谢谢提供的方法,但是我试了一下,动作还是没有变化,还是那个样子,需要特别设定什么属性吗
回复 使用道具 举报
robert
金牌服务用户   /  发表于:2016-7-11 11:09:43
5#
是否可以上传一个示例工程,我试着调试下,看为什么不工作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部