mutirow按TAB键如何移动到最后一个cell后就不移动了
mutirow按TAB键在cell之间移动,请问如何控制当移动到最后一个cell后,就不在移动了,我在shortcutkeymanager中设置它movetonextcell,但是当他移动到最后一个cell,继续按tab键,就会
移到第一个cell上去 Tab 和 Shift+Tab 分别绑定的是SelectionActions.MoveToNextCell 和SelectionActions.MoveToPreviousCell。这两个Action都是Wrap方式,就是到最后一个会自动跳到第一个的。
你可以尝试把 Tab 和 Shift+Tab 分别绑定到 MoveToNextCellThenControl 和 MoveToPreviousCellThenControl,这两个Action是移动到最后一个Cell,再按一下就把Focus跳到下一个Control。
如果你需要Tab 和 Shift+Tab 既不要Wrap的效果,也不要跳到下一个Control,那么只能通过自定义Action来实现。 回复 2楼Carl的帖子
我想让tab键跳到最后一个cell后,就停在那里,不要跳到第一个,也不要跳到下一个控件上。
自定义Action要怎么控制呢 请问如何控制呢 代码如下:
public class MyTabAction : GrapeCity.Win.MultiRow.Action
{
public override bool CanExecute(GcMultiRow target)
{
return SelectionActions.MoveToLastCell.CanExecute(target)
&& SelectionActions.MoveToNextCell.CanExecute(target);
}
protected override void OnExecute(GcMultiRow target)
{
SelectionActions.MoveToNextCell.Execute(target);
}
}
public class MyShiftTabAction : GrapeCity.Win.MultiRow.Action
{
public override bool CanExecute(GcMultiRow target)
{
return SelectionActions.MoveToFirstCell.CanExecute(target)
&& SelectionActions.MoveToPreviousCell.CanExecute(target);
}
protected override void OnExecute(GcMultiRow target)
{
SelectionActions.MoveToPreviousCell.Execute(target);
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.gcMultiRow1.ShortcutKeyManager.Unregister(SelectionActions.MoveToPreviousCell);
this.gcMultiRow1.ShortcutKeyManager.Unregister(SelectionActions.MoveToNextCell);
this.gcMultiRow1.ShortcutKeyManager.Register(new MyTabAction(), Keys.Tab);
this.gcMultiRow1.ShortcutKeyManager.Register(new MyShiftTabAction(), Keys.Tab | Keys.Shift);
}
这段代码利用了SelectionActions.MoveToLastCell 在已经移动到最后一个Cell时 CanExecute 会返回false。 回复 5楼Carl的帖子
谢谢您,我试一试 回复 6楼x_g的帖子
谢谢反馈。
如果依然有问题欢迎提出来讨论。
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢 http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页:
[1]