DataGridViewRowContextMenuStripNeededEventHandler Delegera
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar den metod som ska hantera RowContextMenuStripNeeded händelsen för en 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)
Parametrar
- sender
- Object
Källan till händelsen.
En DataGridViewRowContextMenuStripNeededEventArgs som innehåller händelsedata.
Exempel
I följande kodexempel RowContextMenuStripNeeded hanteras händelsen för att tillhandahålla en ContextMenuStrip baserat på den anställdes titel. I det här exemplet finns det två snabbmenyer, en för chefer och en för alla andra anställda.
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
Kommentarer
Händelsen RowContextMenuStripNeeded inträffar endast när kontrollegenskapen DataGridViewDataSource har angetts eller dess VirtualMode egenskap är true.
RowContextMenuStripNeeded Att hantera händelsen är användbart när du vill visa en snabbmeny som bestäms av en rads aktuella tillstånd eller de värden som den innehåller.
När du hanterar RowContextMenuStripNeeded händelsen visas snabbmenyn som du anger i hanteraren när användaren högerklickar på en rad om inte CellContextMenuStripNeeded åsidosätter snabbmenyn för den specifika cell som klickades.
Händelsen RowContextMenuStripNeeded inträffar också när värdet för DataGridViewRow.ContextMenuStrip egenskapen hämtas, antingen programmatiskt eller när användaren högerklickar på en rad.
Du kan använda DataGridViewRowContextMenuStripNeededEventArgs.RowIndex egenskapen för att fastställa tillståndet för en rad eller de värden den innehåller och använda den här informationen för att ändra eller ändra DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip egenskapen. Den här egenskapen initieras med värdet för radegenskapen ContextMenuStrip , som händelsevärdet åsidosätter.
Hantera händelsen RowContextMenuStripNeeded när du arbetar med stora mängder data för att undvika prestandastraff för att ange radvärdet ContextMenuStrip för flera rader. Mer information finns i Best Practices for Scaling the Windows Forms DataGridView Control.
Mer information om hur du hanterar händelser finns i Hantera och höja händelser.
När du skapar ett DataGridViewRowContextMenuStripNeededEventHandler ombud identifierar du den metod som ska hantera händelsen. Om du vill associera händelsen med händelsehanteraren lägger du till en instans av ombudet till händelsen. Händelsehanteraren anropas när händelsen inträffar, såvida du inte tar bort ombudet. Mer information om ombud för händelsehanterare finns i Hantera och höja händelser.
Tilläggsmetoder
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Hämtar ett objekt som representerar den metod som representeras av det angivna ombudet. |