DataGridViewRowContextMenuStripNeededEventHandler Delegar
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa o método que irá lidar com o RowContextMenuStripNeeded evento de um DataGridView.
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(object sender, DataGridViewRowContextMenuStripNeededEventArgs e);
type DataGridViewRowContextMenuStripNeededEventHandler = delegate of obj * DataGridViewRowContextMenuStripNeededEventArgs -> unit
Public Delegate Sub DataGridViewRowContextMenuStripNeededEventHandler(sender As Object, e As DataGridViewRowContextMenuStripNeededEventArgs)
Parâmetros
- sender
- Object
A origem do evento.
A DataGridViewRowContextMenuStripNeededEventArgs que contém os dados do evento.
Exemplos
No exemplo de código seguinte, o RowContextMenuStripNeeded evento é tratado para fornecer a ContextMenuStrip com base no título do funcionário. Neste exemplo, dois há dois menus de contexto, um para gestores e outro para todos os outros funcionários.
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
Observações
O RowContextMenuStripNeeded evento ocorre apenas quando a DataGridView propriedade de controlo DataSource está definida ou a sua VirtualMode propriedade é true. Gerir o RowContextMenuStripNeeded evento é útil quando se quer mostrar um menu de atalho determinado pelo estado atual de uma linha ou pelos valores que ela contém.
Quando lidas com o RowContextMenuStripNeeded evento, o menu de atalhos que especificas no handler é mostrado sempre que o utilizador clica com o botão direito numa linha, a menos que este CellContextMenuStripNeeded sobreponha o menu de atalhos para a célula específica em que foi clicado.
O RowContextMenuStripNeeded evento também ocorre sempre que o valor da DataGridViewRow.ContextMenuStrip propriedade é recuperado, seja programaticamente ou quando o utilizador clica com o botão direito numa linha.
Pode usar a DataGridViewRowContextMenuStripNeededEventArgs.RowIndex propriedade para determinar o estado de uma linha ou os valores que ela contém, e usar esta informação para alterar ou modificar a DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriedade. Esta propriedade é inicializada com o valor da propriedade linha ContextMenuStrip , que o valor do evento sobrepõe.
Trate do RowContextMenuStripNeeded evento ao trabalhar com grandes quantidades de dados para evitar as penalizações de desempenho de definir o valor da linha ContextMenuStrip para várias linhas. Para mais informações, consulte Boas Práticas para Escalar o Controlo Windows Forms DataGridView.
Para mais informações sobre como gerir eventos, consulte Gestão e Levantamento de Eventos.
Quando cria um DataGridViewRowContextMenuStripNeededEventHandler delegado, identifica o método que irá gerir o evento. Para associar o evento ao seu gestor de eventos, adicione uma instância do delegado ao evento. O gestor de eventos é chamado sempre que o evento ocorre, a menos que remova o delegado. Para mais informações sobre os delegados handlers de eventos, consulte Gestão e Angariação de Eventos.
Métodos da Extensão
| Name | Description |
|---|---|
| GetMethodInfo(Delegate) |
Obtém um objeto que representa o método representado pelo delegado especificado. |