DataGridViewRowContextMenuStripNeededEventHandler Delegar
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa o método que manipulará o evento de RowContextMenuStripNeeded de DataGridView.
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(System::Object ^ sender, DataGridViewRowContextMenuStripNeededEventArgs ^ e);
public delegate void DataGridViewRowContextMenuStripNeededEventHandler(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 fonte do evento.
Um DataGridViewRowContextMenuStripNeededEventArgs que contém os dados do evento.
Exemplos
No exemplo de código a seguir, o RowContextMenuStripNeeded evento é tratado para fornecer um ContextMenuStrip com base no título do funcionário. Neste exemplo, há dois menus de contexto, um para gerentes 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
Comentários
O RowContextMenuStripNeeded evento ocorre somente quando a DataGridView propriedade de controle DataSource é definida ou sua VirtualMode propriedade é true
. Manipular o RowContextMenuStripNeeded evento é útil quando você deseja exibir um menu de atalho determinado pelo estado atual de uma linha ou pelos valores que ele contém.
Quando você manipula o RowContextMenuStripNeeded evento, o menu de atalho especificado no manipulador é mostrado sempre que o usuário clica com o botão direito do mouse em uma linha, a menos que o substitua o CellContextMenuStripNeeded menu de atalho para a célula específica que foi clicada.
O RowContextMenuStripNeeded evento também ocorre sempre que o valor da DataGridViewRow.ContextMenuStrip propriedade é recuperado, seja programaticamente ou quando o usuário clica com o botão direito do mouse em uma linha.
Você pode usar a DataGridViewRowContextMenuStripNeededEventArgs.RowIndex propriedade para determinar o estado de uma linha ou os valores que ela contém e usar essas informações para alterar ou modificar a DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriedade. Essa propriedade é inicializada com o valor da propriedade de linha ContextMenuStrip , que o valor do evento substitui.
Manipule o RowContextMenuStripNeeded evento ao trabalhar com grandes quantidades de dados para evitar as penalidades de desempenho de definir o valor da linha ContextMenuStrip para várias linhas. Para obter mais informações, consulte Práticas recomendadas para colocação em escala do controle DataGridView dos Windows Forms.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.
Ao criar um DataGridViewRowContextMenuStripNeededEventHandler delegado, você identifica o método que manipulará o evento. Para associar o evento ao manipulador de eventos, adicione uma instância do delegado ao evento. O manipulador de eventos é chamado sempre que o evento ocorre, a menos que você remova o representante. Para obter mais informações sobre delegados do manipulador de eventos, consulte Manipulando e gerando eventos.
Métodos de Extensão
GetMethodInfo(Delegate) |
Obtém um objeto que representa o método representado pelo delegado especificado. |