MESCIUS MultiRow for Windows Forms 12.0J
セルの移動方法の取得

GcMultiRowコントロールでは、MoveStatusプロパティを使用してセルの移動方法を取得できます。

対象のイベント
MoveStatusプロパティは、次のイベントで使用できます。
  • GcMultiRow.CellEnterイベント
  • GcMultiRow.CellLeaveイベント
  • GcMultiRow.CellBeginEditイベント
  • GcMultiRow.CellEndEditイベント
  • GcMultiRow.RowEnterイベント
  • GcMultiRow.RowLeaveイベント
  • GcMultiRow.NewCellPositionNeeded イベント
取得できる値
MoveStatusプロパティで取得できる値は、MoveStatus 列挙体のメンバになります。
SelectionActionsクラスのプロパティを使用して現在のセルを移動した場合、SelectionActionsプロパティに対応する値を取得します。また、マウスを使用して現在のセルを移動した場合、MoveStatusプロパティはMouseClickを取得します。その他の操作によって現在のセルを移動した場合には、MoveStatusプロパティはNoActionを取得します。


CellEnter、CellLeave、RowEnter、RowLeaveイベントでの使用
CellEnter、CellLeave、RowEnter、RowLeaveイベントでMuveStatusを使用するには、CellMoveEventArgsクラスを使用する必要があります。
  • CellEnter、CellLeaveイベントの引数は、互換性のために既定では CellEventArgsクラスが定義されています。
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_CellEnter(sender As Object, e As CellEventArgs) Handles GcMultiRow1.CellEnter
    Dim newArgs As CellMoveEventArgs = DirectCast(e, CellMoveEventArgs)
    If newArgs.MoveStatus = MoveStatus.MouseClick Then
        Console.WriteLine(GcMultiRow1.CurrentCellPosition)
    End If
End Sub
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_CellEnter(object sender, CellEventArgs e)
{
    CellMoveEventArgs newArgs = e as CellMoveEventArgs;
    if (newArgs.MoveStatus == MoveStatus.MouseClick)
    {
        Console.WriteLine(gcMultiRow1.CurrentCellPosition);                
    }
}
CellBeginEditイベントでの使用
CellBeginEditイベントでは、CellBeginEditEventArgsクラスを使用して、MoveStatusプロパティを取得します。
CellBeginEditイベントでMuveStatusを使用するには、GcMultiRow.EditModeプロパティをEditOnEnterに設定する必要があります。GcMultiRow.EditModeプロパティにEditOnEnterが設定されていない場合には、MuveStatusは常にNoActionを取得します。
CellEndEditイベントでの使用
CellEndEditイベントでは、CellEndEditEventArgsクラスを使用して、MoveStatus プロパティを取得します。
CellEndEditイベントでMuveStatusを使用する場合、現在のセルが編集状態になっている必要があります。
NewCellPositionNeededイベントでの使用
NewCellPositionNeededイベントでは、NewCellPositionNeededEventArgsクラスを使用して、MoveStatusプロパティを取得します。
NewCellPositionNeededイベントでは、NewCellPositionプロパティと組み合わせて、特定の操作で現在のセルを移動した場合の移動先を変更することができます。

次のコードは、マウスクリックでセルを移動する操作を禁止します。
Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_NewCellPositionNeeded(sender As Object, e As GrapeCity.Win.MultiRow.NewCellPositionNeededEventArgs) Handles GcMultiRow1.NewCellPositionNeeded
    If e.MoveStatus = MoveStatus.MouseClick Then
        e.NewCellPosition = GcMultiRow1.CurrentCellPosition
    End If
End Sub
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_NewCellPositionNeeded(object sender, NewCellPositionNeededEventArgs e)
{
    if (e.MoveStatus == MoveStatus.MouseClick)
    {
        e.NewCellPosition = gcMultiRow1.CurrentCellPosition;
    }
}

   
関連トピック

 

 


© MESCIUS inc. All rights reserved.