Aggiornamento: novembre 2007
Si verifica quando è necessario il menu di scelta rapida di una riga.
Spazio dei nomi:
System.Windows.Forms Assembly:
System.Windows.Forms (in System.Windows.Forms.dll)
Visual Basic - (Dichiarazione)
Public Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler
Dim instance As DataGridView
Dim handler As DataGridViewRowContextMenuStripNeededEventHandler
AddHandler instance.RowContextMenuStripNeeded, handler
public event DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded
public:
event DataGridViewRowContextMenuStripNeededEventHandler^ RowContextMenuStripNeeded {
void add (DataGridViewRowContextMenuStripNeededEventHandler^ value);
void remove (DataGridViewRowContextMenuStripNeededEventHandler^ value);
}
/** @event */
public void add_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)
/** @event */
public void remove_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)
JScript non supporta gli eventi.
L'evento RowContextMenuStripNeeded si verifica solo se è impostata la proprietà DataSource del controllo DataGridView o se la relativa proprietà VirtualMode è true. La gestione dell'evento RowContextMenuStripNeeded è utile quando si desidera visualizzare un menu di scelta rapida in base allo stato corrente o ai valori di una riga.
Quando si gestisce l'evento RowContextMenuStripNeeded, il menu di scelta rapida specificato nel gestore viene visualizzato ogni volta che l'utente fa clic con il pulsante destro del mouse su una riga, a meno che CellContextMenuStripNeeded non esegua l'override del menu di scelta rapida per la specifica cella in cui è stato fatto clic.
L'evento RowContextMenuStripNeeded si verifica inoltre ogni volta che viene recuperato il valore della proprietà DataGridViewRow..::.ContextMenuStrip, a livello di codice o quando l'utente fa clic con il pulsante destro del mouse su una riga.
È possibile utilizzare la proprietà DataGridViewRowContextMenuStripNeededEventArgs..::.RowIndex per determinare lo stato o i valori di una riga. Questa informazione può essere utilizzata per modificare il valore della proprietà DataGridViewRowContextMenuStripNeededEventArgs..::.ContextMenuStrip. Questa proprietà viene inizializzata sul valore della proprietà ContextMenuStrip della riga, che esegue l'override del valore dell'evento.
Quando si utilizzano grandi quantità di dati, per evitare una diminuzione nelle prestazioni a causa dell'impostazione del valore della proprietà ContextMenuStrip per più righe, si consiglia di gestire l'evento RowContextMenuStripNeeded. Per ulteriori informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.
Per ulteriori informazioni sulla gestione degli eventi, vedere Utilizzo degli eventi.
Nell'esempio di codice riportato di seguito viene gestito l'evento RowContextMenuStripNeeded per fornire un oggetto ContextMenuStrip in base alla qualifica del dipendente. In questo esempio sono presenti due menu di scelta rapida, uno per i manager e uno per tutti gli altri dipendenti.
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
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;
}
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.5, 3.0, 2.0
Riferimenti
Altre risorse