DataGridView.RowContextMenuStripNeeded Událost

Definice

Vyvolá se, když je potřeba místní nabídka řádku.

public:
 event System::Windows::Forms::DataGridViewRowContextMenuStripNeededEventHandler ^ RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler? RowContextMenuStripNeeded;
member this.RowContextMenuStripNeeded : System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler 
Public Custom Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler 

Event Type

Příklady

Následující příklad kódu zpracovává RowContextMenuStripNeeded událost, která poskytuje na ContextMenuStrip základě názvu zaměstnance. V tomto příkladu jsou dvě místní nabídky, jedna pro manažery a jedna pro všechny ostatní zaměstnance.

void dataGridView1_RowContextMenuStripNeeded(object sender,
    DataGridViewRowContextMenuStripNeededEventArgs e)
{
    DataGridViewRow dataGridViewRow1 = dataGridView1.Rows[e.RowIndex];

    toolStripMenuItem1.Enabled = true;

    // Show the appropriate ContextMenuStrip based on the employees title.
    if ((dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Sales Manager") ||
        (dataGridViewRow1.Cells["Title"].Value.ToString() ==
        "Vice President, Sales"))
    {
        e.ContextMenuStrip = managerMenuStrip;
    }
    else
    {
        e.ContextMenuStrip = employeeMenuStrip;
    }

    contextMenuRowIndex = e.RowIndex;
}
Public Sub dataGridView1_RowContextMenuStripNeeded( _
    ByVal sender As Object, _
    ByVal e As DataGridViewRowContextMenuStripNeededEventArgs) _
    Handles dataGridView1.RowContextMenuStripNeeded

    Dim dataGridViewRow1 As DataGridViewRow = _
    dataGridView1.Rows(e.RowIndex)

    toolStripMenuItem1.Enabled = True

    ' Show the appropriate ContextMenuStrip based on the employees title.
    If dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Sales Manager" OrElse _
        dataGridViewRow1.Cells("Title").Value.ToString() = _
        "Vice President, Sales" Then

        e.ContextMenuStrip = managerMenuStrip
    Else
        e.ContextMenuStrip = employeeMenuStrip
    End If

    contextMenuRowIndex = e.RowIndex
End Sub

Poznámky

Událost RowContextMenuStripNeeded nastane pouze v případě, že DataGridView je vlastnost ovládacího prvku DataSource nastavena nebo je její VirtualMode vlastnost true. RowContextMenuStripNeeded Zpracování události je užitečné, když chcete zobrazit místní nabídku určenou aktuálním stavem řádku nebo hodnotami, které obsahuje.

Při zpracování RowContextMenuStripNeeded události se místní nabídka, kterou zadáte v obslužné rutině, zobrazí pokaždé, když uživatel klikne pravým tlačítkem myši na řádek, pokud CellContextMenuStripNeeded nepřepíše místní nabídku pro konkrétní buňku, na kterou jste klikli.

K RowContextMenuStripNeeded události dochází také při každém načtení hodnoty DataGridViewRow.ContextMenuStrip vlastnosti, a to buď programově, nebo když uživatel klikne pravým tlačítkem myši na řádek.

Vlastnost můžete použít DataGridViewRowContextMenuStripNeededEventArgs.RowIndex k určení stavu řádku nebo hodnot, které obsahuje, a tyto informace použít ke změně nebo úpravě DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip vlastnosti. Tato vlastnost je inicializována s hodnotou vlastnosti řádku ContextMenuStrip , kterou hodnota události přepíše.

RowContextMenuStripNeeded Zpracování události při práci s velkými objemy dat, aby se zabránilo snížení výkonu nastavení hodnoty řádku ContextMenuStrip pro více řádků. Další informace najdete v tématu Osvědčené postupy pro škálování ovládacího prvku model Windows Forms DataGridView.

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Platí pro

Viz také