DataGridViewRowContextMenuStripNeededEventHandler Делегат

Определение

Представляет метод, обрабатывающий событие RowContextMenuStripNeeded объекта DataGridView.Represents the method that will handle the RowContextMenuStripNeeded event of a DataGridView.

public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::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

Источник события.The source of the event.

e
DataGridViewRowContextMenuStripNeededEventArgs

Объект DataGridViewRowContextMenuStripNeededEventArgs, содержащий данные события.A DataGridViewRowContextMenuStripNeededEventArgs that contains the event data.

Наследование
DataGridViewRowContextMenuStripNeededEventHandler

Примеры

В следующем примере RowContextMenuStripNeeded кода событие обрабатывается для предоставления в ContextMenuStrip зависимости от заголовка сотрудника.In the following code example, the RowContextMenuStripNeeded event is handled to provide a ContextMenuStrip based on the title of the employee. В этом примере два контекстных меню — одно для руководителей, а другое — для всех других сотрудников.In this example, two there are two context menus, one for managers and one for all other employees.

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

Комментарии

true VirtualMode DataSource DataGridView Это событие возникает только в том случае, если свойство элемента управления задано, или его свойство имеет значение. RowContextMenuStripNeededThe RowContextMenuStripNeeded event occurs only when the DataGridView control DataSource property is set or its VirtualMode property is true. RowContextMenuStripNeeded Обработка события полезна, если требуется отобразить контекстное меню, определяемое текущим состоянием строки или содержащимся в нем значением.Handling the RowContextMenuStripNeeded event is useful when you want to display a shortcut menu determined by a row's current state or the values it contains.

При обработке RowContextMenuStripNeeded события контекстное меню, указанное в обработчике, отображается всякий раз, когда пользователь щелкает правой кнопкой мыши строку, CellContextMenuStripNeeded если не переопределяет контекстное меню для конкретной ячейки, которая была нажата.When you handle the RowContextMenuStripNeeded event, the shortcut menu that you specify in the handler is shown whenever the user right-clicks a row unless the CellContextMenuStripNeeded overrides the shortcut menu for the specific cell that was clicked.

Это RowContextMenuStripNeeded событие также возникает при получении значения DataGridViewRow.ContextMenuStrip свойства либо программно, либо при щелчке правой кнопкой мыши по строке.The RowContextMenuStripNeeded event also occurs whenever the value of the DataGridViewRow.ContextMenuStrip property is retrieved, either programmatically or when the user right-clicks a row.

DataGridViewRowContextMenuStripNeededEventArgs.RowIndex Свойство можно использовать для определения состояния строки или содержащихся в ней значений, а также для изменения или DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip изменения свойства с помощью этих сведений.You can use the DataGridViewRowContextMenuStripNeededEventArgs.RowIndex property to determine the state of a row or the values it contains, and use this information to change or modify the DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip property. Это свойство инициализируется значением свойства Row ContextMenuStrip , которое переопределяет значение события.This property is initialized with the value of the row ContextMenuStrip property, which the event value overrides.

Обрабатывайте ContextMenuStrip событие при работе с большими объемами данных, чтобы избежать снижения производительности при установке значения строки для нескольких строк. RowContextMenuStripNeededHandle the RowContextMenuStripNeeded event when working with large amounts of data to avoid the performance penalties of setting the row ContextMenuStrip value for multiple rows. Подробнее см. в разделе Масштабирование элемента управления DataGridView в Windows Forms.For more information, see Best Practices for Scaling the Windows Forms DataGridView Control.

Дополнительные сведения об обработке событий см. в разделе обработка и вызов событий.For more information about how to handle events, see Handling and Raising Events.

При создании делегата DataGridViewRowContextMenuStripNeededEventHandler необходимо указать метод, обрабатывающий событие.When you create a DataGridViewRowContextMenuStripNeededEventHandler delegate, you identify the method that will handle the event. Чтобы связать событие с обработчиком событий, нужно добавить в событие экземпляр делегата.To associate the event with your event handler, add an instance of the delegate to the event. Обработчик событий вызывается всякий раз, когда происходит событие, если делегат не удален.The event handler is called whenever the event occurs, unless you remove the delegate. Дополнительные сведения о делегатах обработчиков событий см. в разделе обработка и вызов событий.For more information about event-handler delegates, see Handling and Raising Events.

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

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.Gets an object that represents the method represented by the specified delegate.

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

Дополнительно