DataGridViewRow.ContextMenuStrip DataGridViewRow.ContextMenuStrip DataGridViewRow.ContextMenuStrip DataGridViewRow.ContextMenuStrip Property


行のショートカット メニューを取得または設定します。Gets or sets the shortcut menu for the row.

 virtual property System::Windows::Forms::ContextMenuStrip ^ ContextMenuStrip { System::Windows::Forms::ContextMenuStrip ^ get(); void set(System::Windows::Forms::ContextMenuStrip ^ value); };
public override System.Windows.Forms.ContextMenuStrip ContextMenuStrip { get; set; }
member this.ContextMenuStrip : System.Windows.Forms.ContextMenuStrip with get, set
Public Overrides Property ContextMenuStrip As ContextMenuStrip


現在の ContextMenuStrip に関連付けられている DataGridViewRowThe ContextMenuStrip associated with the current DataGridViewRow. 既定値は、null です。The default is null.


このプロパティの値の取得時に、行が DataGridView コントロール内にあり、共有行です。When getting the value of this property, the row is in a DataGridView control and is a shared row.

次のコード例は、使用する方法を示します、DataGridViewColumn.ContextMenuStripとほぼ同じであるプロパティ、ContextMenuStripのプロパティ、DataGridViewRowクラス。The following code example demonstrates how to use the DataGridViewColumn.ContextMenuStrip property, which is nearly identical to the ContextMenuStrip property of the DataGridViewRow class. このコード例で示されている例のコードの一部は、DataGridViewColumnクラス。This code example is part of a larger code example provided in the DataGridViewColumn class.

ToolStripMenuItem^ toolStripItem1;
void AddContextMenu()
   toolStripItem1->Text = L"Redden";
   toolStripItem1->Click += gcnew EventHandler( this, &DataGridViewColumnDemo::toolStripItem1_Click );
   System::Windows::Forms::ContextMenuStrip^ strip = gcnew System::Windows::Forms::ContextMenuStrip;
   IEnumerator^ myEnum = dataGridView->Columns->GetEnumerator();
   while ( myEnum->MoveNext() )
      DataGridViewColumn^ column = safe_cast<DataGridViewColumn^>(myEnum->Current);
      column->ContextMenuStrip = strip;
      column->ContextMenuStrip->Items->Add( toolStripItem1 );

DataGridViewCellEventArgs^ mouseLocation;

// Change the cell's color.
void toolStripItem1_Click( Object^ /*sender*/, EventArgs^ /*args*/ )
   dataGridView->Rows[ mouseLocation->RowIndex ]->Cells[ mouseLocation->ColumnIndex ]->Style->BackColor = Color::Red;

// Deal with hovering over a cell.
void dataGridView_CellMouseEnter( Object^ /*sender*/, DataGridViewCellEventArgs^ location )
   mouseLocation = location;

ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();

private void AddContextMenu()
    toolStripItem1.Text = "Redden";
    toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
    ContextMenuStrip strip = new ContextMenuStrip();
    foreach (DataGridViewColumn column in dataGridView.Columns)

        column.ContextMenuStrip = strip;

private DataGridViewCellEventArgs mouseLocation;

// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
        = Color.Red;

// Deal with hovering over a cell.
private void dataGridView_CellMouseEnter(object sender,
    DataGridViewCellEventArgs location)
    mouseLocation = location;
WithEvents toolStripItem1 As New ToolStripMenuItem()

Private Sub AddContextMenu()
    toolStripItem1.Text = "Redden"
    Dim strip As New ContextMenuStrip()
    For Each column As DataGridViewColumn _
        In dataGridView.Columns()

        column.ContextMenuStrip = strip
End Sub
' Change the cell's color.
Private Sub toolStripItem1_Click(ByVal sender As Object, _
    ByVal args As EventArgs) _
    Handles toolStripItem1.Click

    dataGridView.Rows(mouseLocation.RowIndex) _
        .Cells(mouseLocation.ColumnIndex) _
        .Style.BackColor = Color.Red
End Sub

Private mouseLocation As DataGridViewCellEventArgs

' Deal with hovering over a cell.
Private Sub dataGridView_CellMouseEnter(ByVal sender As Object, _
    ByVal location As DataGridViewCellEventArgs) _
    Handles DataGridView.CellMouseEnter

    mouseLocation = location
End Sub


このプロパティは、ユーザーは、しない限り、行を右クリックしたときに表示されるショートカット メニューを示します、DataGridViewコントロールCellContextMenuStripNeededイベントまたは行ContextMenuStripプロパティがクリックされた特定のセルのショートカット メニューをオーバーライドします。This property indicates the shortcut menu that is displayed when the user right-clicks the row unless the DataGridView control CellContextMenuStripNeeded event or the row ContextMenuStrip property overrides the shortcut menu for the specific cell that was clicked.

ときに、DataGridViewコントロールDataSourceプロパティを設定またはそのVirtualModeプロパティはtrueの値を取得する、ContextMenuStripプロパティが発生、RowContextMenuStripNeededコントロールのイベントの値を返します、 DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStripとしてプロパティを指定、イベント ハンドラー。When the DataGridView control DataSource property is set or its VirtualMode property is true, getting the value of the ContextMenuStrip property raises the RowContextMenuStripNeeded event of the control and returns the value of the DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip property as specified in the event handler. イベントのハンドラーがない場合の値の取得、ContextMenuStripプロパティは、以前に指定した値またはの場合は、その既定値を返しますnullします。If there are no handlers for the event, getting the value of the ContextMenuStrip property returns the previously specified value or its default value of null.

処理、RowContextMenuStripNeededイベントは、大量のデータ行を設定するときに、パフォーマンスの低下を回避するために使用する場合、主に使用ContextMenuStrip複数行の値。Handling the RowContextMenuStripNeeded event is primarily useful when working with large amounts of data to avoid performance penalties when setting the row ContextMenuStrip value for multiple rows. 詳細については、次を参照してください。 Windows フォーム DataGridView コントロールを拡張するためのベスト プラクティスします。For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

このプロパティの変更が発生、RowContextMenuStripChangedイベントを所有しているDataGridViewが存在する場合は、します。Changing this property raises the RowContextMenuStripChanged event on the owning DataGridView, if one exists.

現在の行を共有すると、使用して、GetContextMenuStripこのプロパティの値を取得するのではなく、メソッド。If the current row is shared, use the GetContextMenuStrip method rather than getting the value of this property.