Eventi DataGridView


Riferimento a .NET Framework
Evento DataGridView..::.RowContextMenuStripNeeded

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)

Sintassi

Visual Basic - (Dichiarazione)
Public Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler
Visual Basic (Utilizzo)
Dim instance As DataGridView
Dim handler As DataGridViewRowContextMenuStripNeededEventHandler

AddHandler instance.RowContextMenuStripNeeded, handler
C#
public event DataGridViewRowContextMenuStripNeededEventHandler RowContextMenuStripNeeded
Visual C++
public:
 event DataGridViewRowContextMenuStripNeededEventHandler^ RowContextMenuStripNeeded {
    void add (DataGridViewRowContextMenuStripNeededEventHandler^ value);
    void remove (DataGridViewRowContextMenuStripNeededEventHandler^ value);
}
J#
/** @event */
public void add_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)
/** @event */
public void remove_RowContextMenuStripNeeded (DataGridViewRowContextMenuStripNeededEventHandler value)
JScript
JScript non supporta gli eventi.
Note

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.

Esempi

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.

Visual Basic
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
C#
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;
}
Piattaforme

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
Vedere anche

Riferimenti

Altre risorse

Tag :


Page view tracker