GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 > Cell クラス : ContextMenuStrip プロパティ |
Public Overridable Property ContextMenuStrip As ContextMenuStrip
public virtual ContextMenuStrip ContextMenuStrip {get; set;}
このプロパティは、ユーザーがセルを右クリックしたときに一般に表示されるショートカットメニューを示します。このプロパティを変更すると、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)を指定することもできます。
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