DataGridView.RowContextMenuStripNeeded Evento

Definizione

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;
member this.RowContextMenuStripNeeded : System.Windows.Forms.DataGridViewRowContextMenuStripNeededEventHandler 
Public Custom Event RowContextMenuStripNeeded As DataGridViewRowContextMenuStripNeededEventHandler 

Tipo evento

DataGridViewRowContextMenuStripNeededEventHandler

Esempio

Nell'esempio di codice seguente viene RowContextMenuStripNeeded gestito l'evento per ContextMenuStrip fornire un oggetto in base al 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

RowContextMenuStripNeededL'evento si verifica solo quando la proprietà del controllo è DataGridView DataSource impostata o la relativa proprietà VirtualMode è true . La gestione dell'evento è utile quando si desidera visualizzare un menu di scelta rapida determinato dallo stato corrente di una riga o RowContextMenuStripNeeded dai valori in essa contenuti.

Quando si gestisce l'evento , 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 non sostituisca il menu di scelta rapida per la cella specifica su cui è stato fatto RowContextMenuStripNeeded CellContextMenuStripNeeded clic.

L'evento 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 RowContextMenuStripNeeded del mouse su una DataGridViewRow.ContextMenuStrip riga.

È possibile utilizzare la proprietà per determinare lo stato di una riga o i valori in essa contenuti e utilizzare queste informazioni per DataGridViewRowContextMenuStripNeededEventArgs.RowIndex modificare la DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip proprietà. Questa proprietà viene inizializzata con il valore della proprietà row, di cui il ContextMenuStrip valore dell'evento esegue l'override.

Gestire l'evento quando si lavora con grandi quantità di dati per evitare le penalità in termini di prestazioni associate all'impostazione RowContextMenuStripNeeded del valore della riga per più ContextMenuStrip 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.

Si applica a

Vedi anche