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

セルに関連付けられたショートカットメニューを取得または設定します。
構文
Public Overridable Property ContextMenuStrip As ContextMenuStrip
public virtual ContextMenuStrip ContextMenuStrip {get; set;}

プロパティ値

セルに関連付けられたショートカットメニューを表すSystem.Windows.Forms.ContextMenuStrip値。既定値はnull 参照 (Visual Basicでは Nothing)です。
解説

このプロパティは、ユーザーがセルを右クリックしたときに一般に表示されるショートカットメニューを示します。このプロパティを変更すると、GcMultiRow.CellContextMenuStripChangedイベントが発生します。

GcMultiRowコントロールでGcMultiRow.DataSourceまたはGcMultiRow.VirtualModeを設定した場合は、GcMultiRowのGcMultiRow.CellContextMenuStripNeededイベントを処理できます。これは、大量のデータを操作しているときに、複数のセルのContextMenuStrip値を設定することでパフォーマンスペナルティが生じる事態を避けるために役立ちます。

また、個々のセルではなく個々のセクションにショートカットメニューを指定することもできます。そのためには、セクションのSection.ContextMenuStripプロパティを設定するか、GcMultiRowコントロールのGcMultiRow.SectionContextMenuStripNeededイベントを処理します。セルのContextMenuStripプロパティを設定すると、セクションのSection.ContextMenuStripプロパティの設定がオーバーライドされます。また、GcMultiRow.CellContextMenuStripNeededイベントは、SectionContextMenuStripNeededイベントとセクションのContextMenuStripプロパティ設定の両方をオーバーライドします。ただし、セクションのショートカットメニューがオーバーライドされないように、セルのショートカットメニューにnull 参照 (Visual Basicでは Nothing)を指定することもできます。

使用例
次のサンプルコードは、RowHeaderCellでContextMenuStripがポップアップしたときに、クリックされた行を非表示にする方法を示します。また、ContextMenuStripを通じて切り取り、コピー、および貼り付けを行うことができます。
private void Form1_Load(object sender, EventArgs e)
{
    Template template1 = Template.CreateGridTemplate(10, 80, 21, 1000, AutoGenerateGridTemplateStyles.RowHeaderAutoNumber);
    
    template1.Row.ContextMenuStrip = sectionMenuStrip;

    foreach (Cell item in template1.Row.Cells)
    {
        if (!(item is RowHeaderCell))
        {
            item.ContextMenuStrip = cellMenu;
        }
    }

    gcMultiRow1.Template = template1;
    gcMultiRow1.RowCount = 20;
    gcMultiRow1.CellMouseDown += new EventHandler<CellMouseEventArgs>(gcMultiRow1_CellMouseDown);
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim template1 As Template = Template.CreateGridTemplate(10, 80, 21, 1000, AutoGenerateGridTemplateStyles.RowHeaderAutoNumber)

    template1.Row.ContextMenuStrip = sectionMenuStrip

    For Each item As Cell In template1.Row.Cells
        If Not (TypeOf item Is RowHeaderCell) Then
            item.ContextMenuStrip = cellMenu
        End If
    Next

    gcMultiRow1.Template = template1
    gcMultiRow1.RowCount = 20
End Sub
参照

Cell クラス
Cell メンバ
ContextMenuStrip プロパティ
ContextMenuStrip プロパティ
CellContextMenuStripChanged イベント
CellContextMenuStripNeeded イベント
SectionContextMenuStripNeeded イベント

 

 


© 2008-2015 GrapeCity inc. All rights reserved.