loacher 发表于 2012-12-17 10:31:00

求教,运行之后,如何设置TabStop

检索出来数据之后,想设置单独其中一行的某些字段的TabStop=False,怎么设置?

wedy.wang 发表于 2012-12-17 13:55:00

回复 1楼loacher的帖子

这个属性在运行起来之后,是无法设置的。
如果你想让这个Cell不能被选中,你可以设置Cell.Selectable属性为False

loacher 发表于 2012-12-17 15:27:00

不是这个效果,设置好之后,按tab键,不进入这个cell,但是鼠标是可以点的,有哪个属性可以设置吗

loacher 发表于 2012-12-18 10:09:00

还请wedy.wang 兄,帮忙看看

wedy.wang 发表于 2012-12-18 10:48:00

回复 4楼loacher的帖子

是不是希望在有些场景下按Tab可以进入,有些场景下不能进入?

loacher 发表于 2012-12-18 12:39:00

是这样的,鼠标点,任何时候都可以进入,就是tab的时候,有时候可以进有时候不可以进

wedy.wang 发表于 2012-12-18 13:58:00

回复 6楼loacher的帖子

这样的话,你需要自定义一个IAction,并将它注册给Tab键到MultiRow的快捷方式当中。
参考下面的代码:
public class CustomMoveToNextCell : IAction
      {
            public string DisplayName
            {
                get { return "CustomMoveToNextCell"; }
            }

            public bool CanExecute(GcMultiRow target)
            {
                return SelectionActions.MoveToNextCell.CanExecute(target);
            }

            public void Execute(GcMultiRow target)
            {
               if (this.CanExecute(target))
                {
                  SelectionActions.MoveToNextCell.Execute(target);
                  CellPosition currentPos = target.CurrentCellPosition;
                  Cell currentCell = target;
                  if ("currentCell 不满足TapStop的条件")
                  {
                        //再往后面寻找一个
                        SelectionActions.MoveToNextCell.Execute(target);
                  }
                }
            }
      }
       private void Form1_Load(object sender, EventArgs e)
      {
            this.gcMultiRow1.ShortcutKeyManager.DefaultModeList.Remove(new ShortcutKey(SelectionActions.MoveToNextCell, Keys.Tab));
            this.gcMultiRow1.ShortcutKeyManager.DefaultModeList.Add(new ShortcutKey(new CustomMoveToNextCell(), Keys.Tab));
      }

loacher 发表于 2012-12-18 16:29:00

赞一个,多谢兄台
页: [1]
查看完整版本: 求教,运行之后,如何设置TabStop