Kissmint 发表于 2015-5-22 14:34:00

MultiRow的Enter Key动作

需求:
现在有个multiRow,里面有普通的Cell,还有个Button Cell。
对于普通Cell,按下Enter,去下一个Cell,
对于Button Cell,按下Enter,想要响应其Click事件。

能够实现吗?

已经解决,结贴

Carl 发表于 2015-5-22 16:13:00

可以用自定义Action来实现。

      private class MyCustomAction : GrapeCity.Win.MultiRow.IAction
      {
            public string DisplayName
            {
                get { return "MyCustomAction"; }
            }

            public bool CanExecute(GcMultiRow target)
            {
                return target.CurrentCell != null;
            }

            public void Execute(GcMultiRow target)
            {
                if (target.CurrentCell is ButtonCell)
                {
                  // Do your button click logic here.
                  Console.WriteLine("Current Button is clicked.");
                }
                else
                {
                  SelectionActions.MoveToNextRow.Execute(target);
                }
            }
      }

把这个Action注册给MultiRow:

            this.gcMultiRow1.ShortcutKeyManager.Register(new MyCustomAction(), Keys.Enter);


默认情况下,按Enter键是注册到进入/退出编辑状态的。如果把Enter键注册给移动到下一行,建议把Shift+Enter注册给移动到上一行。其他关于Action的内容,安装包里应该有demo吧。

Alice 发表于 2015-5-22 16:18:00

回复 1楼Kissmint的帖子

感谢你的反馈。
也谢谢@Carl 的分享。
此问题关闭,如果有新问题请开新帖。
页: [1]
查看完整版本: MultiRow的Enter Key动作