PowerTools MultiRow for Windows Forms 8.0J
CurrentCellPosition プロパティ (GcMultiRow)
使用例 

現在のアクティブセルの位置を示す値を取得または設定します。
構文
Public Property CurrentCellPosition As CellPosition
public CellPosition CurrentCellPosition {get; set;}

プロパティ値

現在のアクティブセルの位置を示すCellPosition
例外
例外解説
System.ArgumentException

指定されたCellPositionは選択できないか、表示できないか、または非表示の行に含まれています。

または

指定されたCellPositionのRowIndexまたはCellIndexが範囲外であるか、CellNameが無効です。

System.InvalidOperationException

ViewModeViewMode.Displayです。

または

ViewModeViewMode.ListBoxです。

または

GcMultiRowTemplateがありません。

または

現在のセルをコミットまたはキャンセルできません。

解説
このプロパティを設定すると、現在のセルも変更されます。この場合、現在のセルはインスタンス化されません。
使用例
次のサンプルコードは、CellMouseDownイベントが発生したときにCurrentCellPositionを設定する方法を示します。このサンプルコードは、Section.ContextMenuStripプロパティに示されている詳細なコード例の一部を抜粋したものです。
void gcMultiRow1_CellMouseDown(object sender, CellMouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        if (e.Scope == CellScope.Row && gcMultiRow1.Template.Row.Cells[e.CellIndex].Selectable)
        {
            gcMultiRow1.CurrentCellPosition = new CellPosition(e.Scope, e.SectionIndex, e.CellIndex);
        }
        if (gcMultiRow1.GetValue(e.SectionIndex, e.CellIndex) != null)
        {
            cut.Enabled = true;
            copy.Enabled = true;
        }
        else
        {
            cut.Enabled = false;
            copy.Enabled = false;
        }

        if (e.Scope == CellScope.Row && e.SectionIndex != gcMultiRow1.RowCount - 1)
        {
            sectionMenuStrip.Enabled = true;
            sectionMenuStrip.Tag = new CellPosition(e.Scope, e.SectionIndex, e.CellIndex);
        }
        else
        {
            sectionMenuStrip.Enabled = false;
        }

        if (Clipboard.ContainsText())
        {
            paste.Enabled = true;
        }
        else
        {
            paste.Enabled = false;
        }
    }
}
Private Sub gcMultiRow1_CellMouseDown(ByVal sender As Object, ByVal e As CellMouseEventArgs) Handles gcMultiRow1.CellMouseDown
    If e.Button = MouseButtons.Right Then
        If e.Scope = CellScope.Row AndAlso gcMultiRow1.Template.Row.Cells(e.CellIndex).Selectable Then
            gcMultiRow1.CurrentCellPosition = New CellPosition(e.Scope, e.SectionIndex, e.CellIndex)
        End If
        If gcMultiRow1.GetValue(e.SectionIndex, e.CellIndex) <> Nothing Then
            cut.Enabled = True
            copy.Enabled = True
        Else
            cut.Enabled = False
            copy.Enabled = False
        End If

        If e.Scope = CellScope.Row AndAlso e.SectionIndex <> gcMultiRow1.RowCount - 1 Then
            sectionMenuStrip.Enabled = True
            sectionMenuStrip.Tag = New CellPosition(e.Scope, e.SectionIndex, e.CellIndex)
        Else
            sectionMenuStrip.Enabled = False
        End If

        If Clipboard.ContainsText() Then
            paste.Enabled = True
        Else
            paste.Enabled = False
        End If
    End If
End Sub
参照

GcMultiRow クラス
GcMultiRow メンバ
CurrentCell プロパティ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.