PowerTools MultiRow for Windows Forms 8.0J
OnMouseMove メソッド (Cell)
使用例 

イベントデータを含むCellMouseEventArgs
GcMultiRowに関連付けられたGcMultiRow.CellMouseMoveイベントを発生させます。
構文
Protected Overridable Sub OnMouseMove( _
   ByVal e As CellMouseEventArgs _
) 
protected virtual void OnMouseMove( 
   CellMouseEventArgs e
)

パラメータ

e
イベントデータを含むCellMouseEventArgs
解説

イベントが発生すると、デリゲートを使用してイベントハンドラが呼び出されます。

OnMouseMoveメソッドを使用すると、派生クラスでデリゲートを結び付けずにイベントを処理できます。派生クラスでイベントを処理する場合は、この手法をお勧めします。

継承時の注意:派生クラスでOnMouseMoveをオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスのOnMouseMoveメソッドを呼び出してください。

使用例
次のサンプルコードは、このメソッドを使用してセルのマウス動作をカスタマイズする方法を示します。このサンプルコードは、IEditingCellインタフェースに示されている詳細なコード例の一部を抜粋したものです。
bool _beginMouseDraging = false;

protected override void OnMouseDown(CellMouseEventArgs e)
{
    // Override OnMouseDown method to customize the action when mouse down the cell.
    if (e.Button == MouseButtons.Left)
    {
        // Assert the cell is current cell.
        if (this.GcMultiRow.CurrentCell.RowIndex == e.RowIndex &&
            this.GcMultiRow.CurrentCell.CellIndex == e.CellIndex)
        {
            bool beginEditSuccess = this.GcMultiRow.BeginEdit(false);

            if (beginEditSuccess)
            {
                this.EditingCellFormattedValue = this.GetValueFromPoint(e.Location);
                this._beginMouseDraging = true;
            }
        }
    }
    base.OnMouseDown(e);
}

protected override void OnMouseMove(CellMouseEventArgs e)
{
    if (this._beginMouseDraging)
    {
        // Mouse dragging to change the EditingCellFormattedValue.
        this.EditingCellFormattedValue = this.GetValueFromPoint(e.Location);
    }
    base.OnMouseMove(e);
}

protected override void OnMouseUp(CellMouseEventArgs e)
{
    // When mouse up, end dragging.
    this._beginMouseDraging = false;
    base.OnMouseUp(e);
}
Private _beginMouseDraging As Boolean = False

Protected Overloads Overrides Sub OnMouseDown(ByVal e As CellMouseEventArgs)
    ' Override OnMouseDown method to customize the action when mouse down the cell.
    If e.Button = MouseButtons.Left Then
        ' Assert the cell is current cell.
        If Me.GcMultiRow.CurrentCell.RowIndex = e.RowIndex AndAlso Me.GcMultiRow.CurrentCell.CellIndex = e.CellIndex Then
            Dim beginEditSuccess As Boolean = Me.GcMultiRow.BeginEdit(False)

            If beginEditSuccess Then
                Me.EditingCellFormattedValue = Me.GetValueFromPoint(e.Location)
                Me._beginMouseDraging = True
            End If
        End If
    End If
    MyBase.OnMouseDown(e)
End Sub

Protected Overloads Overrides Sub OnMouseMove(ByVal e As CellMouseEventArgs)
    If Me._beginMouseDraging Then
        ' Mouse dragging to change the EditingCellFormattedValue.
        Me.EditingCellFormattedValue = Me.GetValueFromPoint(e.Location)
    End If
    MyBase.OnMouseMove(e)
End Sub

Protected Overloads Overrides Sub OnMouseUp(ByVal e As CellMouseEventArgs)
    ' When mouse up, end dragging.
    Me._beginMouseDraging = False
    MyBase.OnMouseUp(e)
End Sub
参照

Cell クラス
Cell メンバ
OnMouseClick メソッド
OnMouseDoubleClick メソッド
OnMouseDown メソッド
OnMouseUp メソッド
OnMouseWheel メソッド
OnMouseEnter メソッド
OnMouseLeave メソッド
CellMouseMove イベント

 

 


© 2008-2015 GrapeCity inc. All rights reserved.