PowerTools MultiRow for Windows Forms 8.0J
次のコントロールへフォーカスを移動する

ComponentActions.SelectNextControlプロパティを実行すると、TabIndexに従ってフォーカスをフォーム内の次のコントロールに移動します。フォーカスを移動するかどうかは、現在のセルが最終行の最終セルかどうかで判定を行います。
サンプルコード
次のコードは、最終行の最後のセルの場合には次のコントロールにフォーカスを移動し、それ以外の場合には次のセルに移動するためのアクションを作成します。
Imports GrapeCity.Win.MultiRow

Public Class CustomMoveToNextContorol
    Implements IAction

    Public Function CanExecute(ByVal target As GcMultiRow) As Boolean Implements IAction.CanExecute
        Return True
    End Function

    Public ReadOnly Property DisplayName() As String Implements IAction.DisplayName
        Get
            Return Me.ToString()
        End Get
    End Property

    Public Sub Execute(ByVal target As GcMultiRow) Implements IAction.Execute
        Dim isLastRow As Boolean = (target.CurrentCellPosition.RowIndex = target.RowCount - 1)
        Dim isLastCell As Boolean = (target.CurrentCellPosition.CellIndex = target.Rows(0).Cells.Count - 2)
        If Not (isLastRow And isLastCell) Then
            ' 最後のセル以外のセルでは次のセルへ移動します。
            SelectionActions.MoveToNextCell.Execute(target)
        Else
            ' 最後のセルでは次のコントロールへ移動します。
            ComponentActions.SelectNextControl.Execute(target)
        End If
    End Sub
End Class
using System;
using GrapeCity.Win.MultiRow;

public class CustomMoveToNextContorol : IAction
{
    public bool CanExecute(GcMultiRow target)
    {
        return true;
    }

    public string DisplayName
    {
        get { return this.ToString(); }
    }

    public void Execute(GcMultiRow target)
    {
        Boolean isLastRow = (target.CurrentCellPosition.RowIndex == target.RowCount - 1);
        Boolean isLastCell = (target.CurrentCellPosition.CellIndex == target.Template.Row.Cells.Count - 2);

        if (!(isLastRow & isLastCell))
        {
            // 最後のセル以外のセルでは次のセルへ移動します。
            SelectionActions.MoveToNextCell.Execute(target);
        }
        else
        {
            // 最後のセルでは次のコントロールへ移動します。
            ComponentActions.SelectNextControl.Execute(target);
        }
    }
}

   
参照

 

 


© 2008-2015 GrapeCity inc. All rights reserved.