Partilhar via


DataGridViewRowContextMenuStripNeededEventHandler Delegar

Definição

Representa o método que manipulará o RowContextMenuStripNeeded evento de um 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)

Parâmetros

sender
Object

A fonte do evento.

Exemplos

No exemplo de código a seguir, o RowContextMenuStripNeeded evento é tratado para fornecer uma ContextMenuStrip base no título do funcionário. Neste exemplo, há dois menus de contexto, um para gerentes e outro para todos os outros funcionários.

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

Comentários

O RowContextMenuStripNeeded evento ocorre somente quando a DataGridView propriedade de controle DataSource é definida ou sua VirtualMode propriedade é true. Manipular o RowContextMenuStripNeeded evento é útil quando você deseja exibir um menu de atalho determinado pelo estado atual de uma linha ou pelos valores que ele contém.

Quando você manipula o RowContextMenuStripNeeded evento, o menu de atalho especificado no manipulador é mostrado sempre que o usuário clica com o botão direito do mouse em uma linha, a menos que o CellContextMenuStripNeeded menu de atalho substitua a célula específica clicada.

O RowContextMenuStripNeeded evento também ocorre sempre que o valor da DataGridViewRow.ContextMenuStrip propriedade é recuperado, programaticamente ou quando o usuário clica com o botão direito do mouse em uma linha.

Você pode usar a DataGridViewRowContextMenuStripNeededEventArgs.RowIndex propriedade para determinar o estado de uma linha ou os valores que ela contém e usar essas informações para alterar ou modificar a DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriedade. Essa propriedade é inicializada com o valor da propriedade de linha ContextMenuStrip , que o valor do evento substitui.

Manipule o RowContextMenuStripNeeded evento ao trabalhar com grandes quantidades de dados para evitar as penalidades de desempenho de definir o valor da linha ContextMenuStrip para várias linhas. Para obter mais informações, consulte As práticas recomendadas para dimensionar o controle DataGridView dos Windows Forms.

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e levantando eventos.

Ao criar um DataGridViewRowContextMenuStripNeededEventHandler delegado, você identifica o método que manipulará o evento. Para associar o evento ao manipulador de eventos, adicione uma instância do delegado ao evento. O manipulador de eventos é chamado sempre que o evento ocorre, a menos que você remova o delegado. Para obter mais informações sobre representantes do manipulador de eventos, consulte Manipulando e levantando eventos.

Métodos de Extensão

Nome Description
GetMethodInfo(Delegate)

Obtém um objeto que representa o método representado pelo delegado especificado.

Aplica-se a

Confira também