DataGridViewRowContextMenuStripNeededEventHandler 委托

定义

表示将用来处理 RowContextMenuStripNeededDataGridView 事件的方法。

C#
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object sender, DataGridViewRowContextMenuStripNeededEventArgs e);
C#
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object? sender, DataGridViewRowContextMenuStripNeededEventArgs e);

参数

sender
Object

事件源。

示例

在下面的代码示例中 RowContextMenuStripNeeded ,处理 事件以基于员工的职务提供 ContextMenuStrip 。 在此示例中,有两个上下文菜单,一个用于经理,另一个用于所有其他员工。

C#
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;
}

注解

RowContextMenuStripNeeded仅当设置了控件DataSource属性或其 VirtualMode 属性为 trueDataGridView,才会发生该事件。 如果要显示由行的 RowContextMenuStripNeeded 当前状态或其包含的值确定的快捷菜单,处理事件非常有用。

处理 RowContextMenuStripNeeded 事件时,每当用户右键单击某一行时,都将显示处理程序中指定的快捷菜单, CellContextMenuStripNeeded 除非 覆盖所单击的特定单元格的快捷菜单。

RowContextMenuStripNeeded每当以编程方式或用户右键单击行时检索属性的值DataGridViewRow.ContextMenuStrip时,也会发生 该事件。

可以使用 DataGridViewRowContextMenuStripNeededEventArgs.RowIndex 属性来确定行的状态或其包含的值,并使用此信息更改或修改属性 DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip 。 此属性使用事件值替代的行 ContextMenuStrip 属性的值初始化。

RowContextMenuStripNeeded处理大量数据时处理 事件,以避免为多行设置行ContextMenuStrip值而造成性能损失。 有关详细信息,请参阅 缩放 Windows 窗体 DataGridView 控件的最佳做法

有关如何处理事件的详细信息,请参阅 处理和引发事件

创建 DataGridViewRowContextMenuStripNeededEventHandler 委托时,需要标识将处理该事件的方法。 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。 有关事件处理程序委托的详细信息,请参阅 处理和引发事件

扩展方法

GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅