Sdílet prostřednictvím


DataGridViewRowContextMenuStripNeededEventHandler Delegát

Definice

Představuje metodu, která bude zpracovávat RowContextMenuStripNeeded událost .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

K RowContextMenuStripNeeded události dochází pouze v případě, DataGridView že je vlastnost ovládacího prvku DataSource nastavena nebo jeho VirtualMode vlastnost je 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ď prostřednictvím kódu programu, 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 pomocí těchto informací můžete změnit nebo upravit DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip vlastnost. Tato vlastnost je inicializována hodnotou vlastnosti řádku ContextMenuStrip , kterou hodnota události přepíše.

RowContextMenuStripNeeded Zpracujte událost při práci s velkým množstvím dat, abyste se vyhnuli 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.

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

Při vytváření delegáta DataGridViewRowContextMenuStripNeededEventHandler identifikujete metodu, která bude zpracovávat událost. 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 se volá při každém výskytu události, pokud delegáta neodeberete. Další informace o delegátech obslužné rutiny událostí naleznete v tématu Zpracování a vyvolávání událostí.

Metody rozšíření

Name Description
GetMethodInfo(Delegate)

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

Platí pro

Viz také