DataGridView.RowContextMenuStripNeeded Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vyvolá se, když je potřeba místní nabídka řádku.
public:
event System::Windows::Forms::DataGridViewRowContextMenuStripNeededEventHandler ^ RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded;
public event System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler? RowContextMenuStripNeeded;
member this.RowContextMenuStripNeeded : System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler
Public Custom Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler
Event Type
Příklady
Následující příklad kódu zpracovává RowContextMenuStripNeeded událost, která poskytuje na ContextMenuStrip základě názvu zaměstnance. V tomto příkladu jsou dvě místní nabídky, jedna pro manažery a jedna pro všechny ostatní zaměstnance.
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
Poznámky
Událost RowContextMenuStripNeeded nastane pouze v případě, že DataGridView je vlastnost ovládacího prvku DataSource nastavena nebo je její VirtualMode vlastnost true
.
RowContextMenuStripNeeded Zpracování události je užitečné, když chcete zobrazit místní nabídku určenou aktuálním stavem řádku nebo hodnotami, které obsahuje.
Při zpracování RowContextMenuStripNeeded události se místní nabídka, kterou zadáte v obslužné rutině, zobrazí pokaždé, když uživatel klikne pravým tlačítkem myši na řádek, pokud CellContextMenuStripNeeded nepřepíše místní nabídku pro konkrétní buňku, na kterou jste klikli.
K RowContextMenuStripNeeded události dochází také při každém načtení hodnoty DataGridViewRow.ContextMenuStrip vlastnosti, a to buď programově, nebo když uživatel klikne pravým tlačítkem myši na řádek.
Vlastnost můžete použít DataGridViewRowContextMenuStripNeededEventArgs.RowIndex k určení stavu řádku nebo hodnot, které obsahuje, a tyto informace použít ke změně nebo úpravě DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip vlastnosti. Tato vlastnost je inicializována s hodnotou vlastnosti řádku ContextMenuStrip , kterou hodnota události přepíše.
RowContextMenuStripNeeded Zpracování události při práci s velkými objemy dat, aby se zabránilo snížení výkonu nastavení hodnoty řádku ContextMenuStrip pro více řádků. Další informace najdete v tématu Osvědčené postupy pro škálování ovládacího prvku model Windows Forms DataGridView.
Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.