DataGridView.RowContextMenuStripNeeded Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando è necessario il menu di scelta rapida di una riga.
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
Tipo evento
Esempio
Nell'esempio di codice seguente viene gestito l'evento RowContextMenuStripNeeded per fornire un oggetto ContextMenuStrip basato sul titolo del dipendente. In questo esempio sono disponibili due menu di scelta rapida, uno per i responsabili e uno per tutti gli altri dipendenti.
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
Commenti
L'evento RowContextMenuStripNeeded si verifica solo quando la proprietà del controllo DataSource è impostata o la DataGridView relativa VirtualMode proprietà è true
.
RowContextMenuStripNeeded La gestione dell'evento è utile quando si vuole visualizzare un menu di scelta rapida determinato dallo stato corrente di una riga o dai valori contenuti.
Quando si gestisce l'evento RowContextMenuStripNeeded , viene visualizzato il menu di scelta rapida specificato nel gestore ogni volta che l'utente fa clic con il pulsante destro del mouse su una riga, a meno CellContextMenuStripNeeded che non venga eseguito l'override del menu di scelta rapida per la cella specifica selezionata.
L'evento RowContextMenuStripNeeded si verifica anche ogni volta che viene recuperato il valore della proprietà, a livello di codice o quando l'utente fa clic con il pulsante destro del DataGridViewRow.ContextMenuStrip mouse su una riga.
È possibile usare la DataGridViewRowContextMenuStripNeededEventArgs.RowIndex proprietà per determinare lo stato di una riga o i valori contenuti e usare queste informazioni per modificare o modificare la DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip proprietà. Questa proprietà viene inizializzata con il valore della proprietà di riga ContextMenuStrip , che il valore dell'evento esegue l'override.
Gestire l'evento quando si usano grandi quantità di dati per evitare le penali per le prestazioni dell'impostazione RowContextMenuStripNeeded del valore della riga ContextMenuStrip per più righe. Per altre informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.