DataGridView.RowContextMenuStripNeeded Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje, gdy potrzebne jest menu skrótów wiersza.
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
Typ zdarzenia
Przykłady
Poniższy przykład kodu obsługuje RowContextMenuStripNeeded zdarzenie, aby podać element ContextMenuStrip na podstawie tytułu pracownika. W tym przykładzie istnieją dwa menu skrótów, jedno dla menedżerów i jeden dla wszystkich innych pracowników.
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
Uwagi
Zdarzenie RowContextMenuStripNeeded występuje tylko wtedy, gdy właściwość kontrolki DataGridViewDataSource jest ustawiona lub jej VirtualMode właściwość to true
. Obsługa RowContextMenuStripNeeded zdarzenia jest przydatna, gdy chcesz wyświetlić menu skrótów określone przez bieżący stan wiersza lub wartości, które zawiera.
Podczas obsługi RowContextMenuStripNeeded zdarzenia menu skrótów określone w procedurze obsługi jest wyświetlane za każdym razem, gdy użytkownik kliknie prawym przyciskiem myszy wiersz, chyba że CellContextMenuStripNeeded zastąpi menu skrótów dla określonej komórki, która została kliknięty.
Zdarzenie RowContextMenuStripNeeded występuje również za każdym razem, gdy zostanie pobrana wartość DataGridViewRow.ContextMenuStrip właściwości, programowo lub gdy użytkownik kliknie prawym przyciskiem myszy wiersz.
Za pomocą DataGridViewRowContextMenuStripNeededEventArgs.RowIndex właściwości można określić stan wiersza lub wartości, które zawiera, i użyć tych informacji, aby zmienić lub zmodyfikować DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip właściwość. Ta właściwość jest inicjowana z wartością właściwości wiersza ContextMenuStrip , która zastępuje wartość zdarzenia.
Obsługa zdarzenia RowContextMenuStripNeeded podczas pracy z dużymi ilościami danych, aby uniknąć kar za wydajność ustawiania wartości wiersza ContextMenuStrip dla wielu wierszy. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące skalowania kontrolki Windows Forms DataGridView.
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.