Поделиться через


DataGridViewRowContextMenuStripNeededEventHandler Делегат

Определение

Представляет метод, который будет обрабатывать RowContextMenuStripNeeded событие объекта 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)

Параметры

sender
Object

Источник события.

e
DataGridViewRowContextMenuStripNeededEventArgs

Объект, DataGridViewRowContextMenuStripNeededEventArgs содержащий данные события.

Примеры

В следующем примере RowContextMenuStripNeeded кода событие обрабатывается для предоставления ContextMenuStrip на основе названия сотрудника. В этом примере есть два контекстных меню, один для руководителей и один для всех остальных сотрудников.

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

Комментарии

Событие RowContextMenuStripNeeded происходит только в том случае, если DataGridView свойство элемента управления DataSource задано или его VirtualMode свойство true. RowContextMenuStripNeeded Обработка события полезна при отображении контекстного меню, определяемого текущим состоянием строки или значениями, содержащимися в ней.

При обработке RowContextMenuStripNeeded события контекстное меню, указанное в обработчике, отображается всякий раз, когда пользователь щелкает строку правой кнопкой мыши, если CellContextMenuStripNeeded только не переопределяет контекстное меню для определенной ячейки, которая была щелкнуна.

Событие RowContextMenuStripNeeded также происходит всякий раз, когда значение DataGridViewRow.ContextMenuStrip свойства извлекается программным способом или когда пользователь щелкает строку правой кнопкой мыши.

Свойство можно использовать DataGridViewRowContextMenuStripNeededEventArgs.RowIndex для определения состояния строки или значений, содержащихся в ней, и использовать эти сведения для изменения или изменения DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip свойства. Это свойство инициализируется со значением свойства строки ContextMenuStrip , которое переопределяет значение события.

RowContextMenuStripNeeded Обработайте событие при работе с большими объемами данных, чтобы избежать штрафов за производительность задания значения строки ContextMenuStrip для нескольких строк. Дополнительные сведения см. в рекомендациях по масштабированию элемента управления DataGridView в Windows Forms.

Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".

При создании делегата DataGridViewRowContextMenuStripNeededEventHandler вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат. Дополнительные сведения о делегатах обработчика событий см. в разделе "Обработка и создание событий".

Методы расширения

Имя Описание
GetMethodInfo(Delegate)

Возвращает объект, представляющий метод, представленный указанным делегатом.

Применяется к

См. также раздел