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

押されたキーを表すSystem.Windows.Forms.Keys
指定されたキーが、編集中のセルで通常処理される入力キーであるかどうかを判断します。
構文
Function WantsInputKey( _
   ByVal keyData As Keys _
) As Boolean
bool WantsInputKey( 
   Keys keyData
)

パラメータ

keyData
押されたキーを表すSystem.Windows.Forms.Keys

戻り値の型

指定されたキーが、編集中のセルで通常処理される入力キーである場合はtrue。それ以外の場合はfalse
解説
特定のkeyDataに対してこのメソッドがtrueを返す場合、キーボードメッセージは編集中のセルによって処理されます。それ以外の場合は、GcMultiRowによってこのキーボードメッセージが処理されます。
使用例
次のサンプルコードは、このメソッドを使用して編集可能セルのキーボード動作をカスタマイズする方法を示します。このサンプルコードは、IEditingCellインタフェースに示されている詳細なコード例の一部を抜粋したものです。
public bool WantsInputKey(Keys keyData)
{
    // Tell MultiRow control that the cell will handle '+','-', and left, right key when edit status.
    if (keyData == Keys.Add || keyData == Keys.Subtract || keyData == Keys.Left || keyData == Keys.Right)
    {
        return true;
    }
    return false;
}

protected override void OnKeyDown(CellKeyEventArgs e)
{
    // Handle key board message when editing state.
    if (this.GcMultiRow.CurrentCell.RowIndex == e.RowIndex &&
        this.GcMultiRow.CurrentCell.CellIndex == e.CellIndex &&
        this.GcMultiRow.IsCurrentCellInEditMode)
    {

        if (e.KeyData == Keys.Add || e.KeyData == Keys.Right)
        {
            this.EditingCellFormattedValue = _editingValue + 1;
        }
        else if (e.KeyData == Keys.Subtract || e.KeyData == Keys.Left)
        {
            this.EditingCellFormattedValue = _editingValue - 1;
        }
        base.OnKeyDown(e);
    }
}
Public Function WantsInputKey(ByVal keyData As Keys) As Boolean Implements IEditingCell.WantsInputKey
    ' Tell MultiRow control that the cell will handle '+','-', and left, right key when edit status.
    If keyData = Keys.Add OrElse keyData = Keys.Subtract OrElse keyData = Keys.Left OrElse keyData = Keys.Right Then
        Return True
    End If
    Return False
End Function

Protected Overloads Overrides Sub OnKeyDown(ByVal e As CellKeyEventArgs)
    ' Handle key board message when editing state.
    If Me.GcMultiRow.CurrentCell.RowIndex = e.RowIndex AndAlso Me.GcMultiRow.CurrentCell.CellIndex = e.CellIndex AndAlso Me.GcMultiRow.IsCurrentCellInEditMode Then

        If e.KeyData = Keys.Add OrElse e.KeyData = Keys.Right Then
            Me.EditingCellFormattedValue = _editingValue + 1
        ElseIf e.KeyData = Keys.Subtract OrElse e.KeyData = Keys.Left Then
            Me.EditingCellFormattedValue = _editingValue - 1
        End If
        MyBase.OnKeyDown(e)
    End If
End Sub
参照

IEditingCell インターフェース
IEditingCell メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.