DataGridViewRow.ContextMenuStrip プロパティ

定義

行のショートカット メニューを取得または設定します。

public:
 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; }
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 に関連付けられている DataGridViewRow。 既定値は、null です。

例外

このプロパティの値の取得時に、行が DataGridView コントロール内にあり、共有行です。

次のコード例では、 プロパティを使用DataGridViewColumn.ContextMenuStripする方法を示します。これは、 クラスの DataGridViewRow プロパティとほぼ同じですContextMenuStrip。 このコード例は、 クラスで提供されるより大きなコード例の DataGridViewColumn 一部です。

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;
        column.ContextMenuStrip.Items.Add(toolStripItem1);
    }
}

private DataGridViewCellEventArgs mouseLocation;

// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
{
    dataGridView.Rows[mouseLocation.RowIndex]
        .Cells[mouseLocation.ColumnIndex].Style.BackColor
        = 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
        column.ContextMenuStrip.Items.Add(toolStripItem1)
    Next
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

注釈

このプロパティは、コントロール CellContextMenuStripNeeded イベントまたはContextMenuStrip行プロパティがクリックされた特定のセルのショートカット メニューをオーバーライドしない限りDataGridView、ユーザーが行を右クリックしたときに表示されるショートカット メニューを示します。

コントロール プロパティがDataGridView設定されている場合、またはそのVirtualModeプロパティが の場合、 trueプロパティの値をContextMenuStrip取得すると、コントロールのイベントが発生RowContextMenuStripNeededし、イベント ハンドラーで指定されたプロパティのDataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip値が返DataSourceされます。 イベントのハンドラーがない場合、 プロパティの ContextMenuStrip 値を取得すると、以前に指定した値またはその既定値 が null返されます。

イベントの RowContextMenuStripNeeded 処理は、主に大量のデータを操作する場合に役立ち、複数の行の行 ContextMenuStrip 値を設定するときにパフォーマンスが低下しないようにします。 詳細については、「 Windows フォーム DataGridView コントロールを拡張するための推奨される手順」を参照してください。

このプロパティを変更すると、 RowContextMenuStripChanged 所有している DataGridViewでイベントが発生します (存在する場合)。

現在の行が共有されている場合は、このプロパティの値を GetContextMenuStrip 取得するのではなく、 メソッドを使用します。

適用対象

こちらもご覧ください