DataGridViewRowContextMenuStripNeededEventHandler Delegát

Definice

Představuje metodu, která bude zpracovávat RowContextMenuStripNeeded událost objektu DataGridView.

public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object sender, DataGridViewRowContextMenuStripNeededEventArgs e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object? sender, DataGridViewRowContextMenuStripNeededEventArgs e);
type DataGridViewRowContextMenuStripNeededEventHandler = delegate of obj * DataGridViewRowContextMenuStripNeededEventArgs -> unit
Public Delegate Sub DataGridViewRowContextMenuStripNeededEventHandler(sender As Object, e As DataGridViewRowContextMenuStripNeededEventArgs)

Parametry

sender
Object

Zdroj události

Příklady

V následujícím příkladu RowContextMenuStripNeeded kódu je událost zpracována tak, aby poskytovala ContextMenuStrip na 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 je nastavena DataGridView vlastnost ovládacího prvku DataSource 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í vždy, 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.

Událost RowContextMenuStripNeeded také nastane při každém načtení hodnoty DataGridViewRow.ContextMenuStrip vlastnosti, buď programově, nebo když uživatel klikne pravým tlačítkem na řádek.

Vlastnost můžete použít DataGridViewRowContextMenuStripNeededEventArgs.RowIndex k určení stavu řádku nebo hodnot, které obsahuje, a použít tyto informace 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, abyste se vyhnuli výkonnostním sankcím při nastavování 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í.

Při vytváření delegáta DataGridViewRowContextMenuStripNeededEventHandler identifikujete metodu, která bude událost zpracovávat. Pokud chcete událost přidružit k obslužné rutině události, přidejte do události instanci delegáta. Obslužná rutina události je volána při každém výskytu události, dokud neodeberete delegáta. Další informace o delegátech obslužné rutiny událostí najdete v tématu Zpracování a vyvolávání událostí.

Metody rozšíření

GetMethodInfo(Delegate)

Získá objekt, který představuje metodu reprezentovanou zadaným delegátem.

Platí pro

Viz také