Sdílet prostřednictvím


DataGridViewRow.ContextMenuStrip Vlastnost

Definice

Získá nebo nastaví místní nabídku pro řádek.

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

Hodnota vlastnosti

Přidruženo ContextMenuStrip k aktuálnímu DataGridViewRow. Výchozí hodnota je null.

Výjimky

Při získávání hodnoty této vlastnosti je řádek v ovládacím DataGridView prvku a je sdíleným řádkem.

Příklady

Následující příklad kódu ukazuje použití DataGridViewColumn.ContextMenuStrip vlastnosti, která je téměř identická s ContextMenuStrip vlastností DataGridViewRow třídy. Tento příklad kódu je součástí většího příkladu kódu, který je součástí DataGridViewColumn třídy.

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

Poznámky

Tato vlastnost označuje místní nabídku, která se zobrazí, když uživatel klikne pravým tlačítkem myši na řádek, pokud DataGridView událost ovládacího prvku CellContextMenuStripNeeded nebo vlastnost řádku ContextMenuStrip nepřepíše místní nabídku pro konkrétní buňku, na kterou bylo kliknuto.

DataGridView Pokud je vlastnost ovládacího prvku DataSource nastavena nebo jeho VirtualMode vlastnost je true, získání hodnoty ContextMenuStrip vlastnosti vyvolá RowContextMenuStripNeeded událost ovládacího prvku a vrátí hodnotu DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip vlastnosti, jak je uvedeno v obslužné rutině události. Pokud neexistují žádné obslužné rutiny pro událost, získání hodnoty ContextMenuStrip vlastnosti vrátí dříve zadanou hodnotu nebo její výchozí hodnotu null.

RowContextMenuStripNeeded Zpracování události je primárně užitečné při práci s velkými objemy dat, aby se zabránilo sankcím za výkon při nastavování hodnoty řádku ContextMenuStrip pro více řádků. Další informace naleznete v tématu Osvědčené postupy pro škálování ovládacího prvku Windows Forms DataGridView.

Změna této vlastnosti vyvolá RowContextMenuStripChanged událost ve vlastnictví DataGridView, pokud existuje.

Pokud je aktuální řádek sdílený, použijte metodu GetContextMenuStrip místo získání hodnoty této vlastnosti.

Platí pro

Viz také