PowerTools MultiRow for Windows Forms 8.0J
CellMouseDown イベント
使用例 

マウスポインタがセルの範囲内にあるときにユーザーがマウスボタンを押すと発生します。
構文
Public Event CellMouseDown As EventHandler(Of CellMouseEventArgs)
public event EventHandler<CellMouseEventArgs> CellMouseDown
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、CellMouseEventArgs 型の引数を受け取りました。次の CellMouseEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Button System.Windows.Forms.MouseEventArgsから継承されます。
CellIndexSection内でのセルのインデックスを取得します。  
CellNameセルの名前を取得します。  
Clicks System.Windows.Forms.MouseEventArgsから継承されます。
Delta System.Windows.Forms.MouseEventArgsから継承されます。
Location System.Windows.Forms.MouseEventArgsから継承されます。
RowIndexイベントが発生したオーナーRowのインデックスを取得します。  
Scopeイベントが発生したセルの領域を取得します。  
SectionIndexイベントが発生したオーナーSectionのインデックスを取得します。  
X System.Windows.Forms.MouseEventArgsから継承されます。
Y System.Windows.Forms.MouseEventArgsから継承されます。
解説
マウスイベントは次の順序で発生します。
  1. CellMouseEnter
  2. CellMouseMove
  3. CellMouseDown
  4. CellMouseUp
  5. CellMouseLeave
使用例
次のサンプルコードは、RowHeaderCellでContextMenuStripがポップアップしたときに、クリックされた行を非表示にする方法を示します。また、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 メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.