DataGridViewRow.ContextMenuStrip Propriedade
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.
Recebe ou define o menu de atalho para a linha.
public:
virtual property System::Windows::Forms::ContextMenuStrip ^ ContextMenuStrip { System::Windows::Forms::ContextMenuStrip ^ get(); void set(System::Windows::Forms::ContextMenuStrip ^ value); };
public override System.Windows.Forms.ContextMenuStrip ContextMenuStrip { get; set; }
member this.ContextMenuStrip : System.Windows.Forms.ContextMenuStrip with get, set
Public Overrides Property ContextMenuStrip As ContextMenuStrip
Valor de Propriedade
O ContextMenuStrip associado à corrente DataGridViewRow. A predefinição é null.
Exceções
Ao obter o valor desta propriedade, a linha está num DataGridView controlo e é uma linha partilhada.
Exemplos
O exemplo de código seguinte demonstra como usar a DataGridViewColumn.ContextMenuStrip propriedade, que é quase idêntica à ContextMenuStrip propriedade da DataGridViewRow classe. Este exemplo de código faz parte de um exemplo de código mais amplo fornecido na DataGridViewColumn classe.
ToolStripMenuItem^ toolStripItem1;
void AddContextMenu()
{
toolStripItem1->Text = L"Redden";
toolStripItem1->Click += gcnew EventHandler( this, &DataGridViewColumnDemo::toolStripItem1_Click );
System::Windows::Forms::ContextMenuStrip^ strip = gcnew System::Windows::Forms::ContextMenuStrip;
IEnumerator^ myEnum = dataGridView->Columns->GetEnumerator();
while ( myEnum->MoveNext() )
{
DataGridViewColumn^ column = safe_cast<DataGridViewColumn^>(myEnum->Current);
column->ContextMenuStrip = strip;
column->ContextMenuStrip->Items->Add( toolStripItem1 );
}
}
DataGridViewCellEventArgs^ mouseLocation;
// Change the cell's color.
void toolStripItem1_Click( Object^ /*sender*/, EventArgs^ /*args*/ )
{
dataGridView->Rows[ mouseLocation->RowIndex ]->Cells[ mouseLocation->ColumnIndex ]->Style->BackColor = Color::Red;
}
// Deal with hovering over a cell.
void dataGridView_CellMouseEnter( Object^ /*sender*/, DataGridViewCellEventArgs^ location )
{
mouseLocation = location;
}
ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();
private void AddContextMenu()
{
toolStripItem1.Text = "Redden";
toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
ContextMenuStrip strip = new ContextMenuStrip();
foreach (DataGridViewColumn column in dataGridView.Columns)
{
column.ContextMenuStrip = strip;
column.ContextMenuStrip.Items.Add(toolStripItem1);
}
}
private DataGridViewCellEventArgs mouseLocation;
// Change the cell's color.
private void toolStripItem1_Click(object sender, EventArgs args)
{
dataGridView.Rows[mouseLocation.RowIndex]
.Cells[mouseLocation.ColumnIndex].Style.BackColor
= Color.Red;
}
// Deal with hovering over a cell.
private void dataGridView_CellMouseEnter(object sender,
DataGridViewCellEventArgs location)
{
mouseLocation = location;
}
WithEvents toolStripItem1 As New ToolStripMenuItem()
Private Sub AddContextMenu()
toolStripItem1.Text = "Redden"
Dim strip As New ContextMenuStrip()
For Each column As DataGridViewColumn _
In dataGridView.Columns()
column.ContextMenuStrip = strip
column.ContextMenuStrip.Items.Add(toolStripItem1)
Next
End Sub
' Change the cell's color.
Private Sub toolStripItem1_Click(ByVal sender As Object, _
ByVal args As EventArgs) _
Handles toolStripItem1.Click
dataGridView.Rows(mouseLocation.RowIndex) _
.Cells(mouseLocation.ColumnIndex) _
.Style.BackColor = Color.Red
End Sub
Private mouseLocation As DataGridViewCellEventArgs
' Deal with hovering over a cell.
Private Sub dataGridView_CellMouseEnter(ByVal sender As Object, _
ByVal location As DataGridViewCellEventArgs) _
Handles DataGridView.CellMouseEnter
mouseLocation = location
End Sub
Observações
Esta propriedade indica o menu de atalho que é exibido quando o utilizador clica com o botão direito na linha, a menos que o DataGridView evento de controlo CellContextMenuStripNeeded ou a propriedade da linha ContextMenuStrip sobreponham o menu de atalho para a célula específica que foi clicada.
Quando a DataGridView propriedade de controlo DataSource é definida ou a sua VirtualMode propriedade é true, obter o valor da ContextMenuStrip propriedade eleva o RowContextMenuStripNeeded evento do controlo e devolve o valor da DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip propriedade conforme especificado no gestor de eventos. Se não existirem manipuladores para o evento, obter o valor da ContextMenuStrip propriedade devolve o valor previamente especificado ou o seu valor padrão de null.
O tratamento do RowContextMenuStripNeeded evento é principalmente útil ao trabalhar com grandes quantidades de dados para evitar penalizações de desempenho ao 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.
Alterar esta propriedade eleva o RowContextMenuStripChanged evento na posse DataGridView, se existir uma.
Se a linha atual for partilhada, use o GetContextMenuStrip método em vez de obter o valor desta propriedade.