DataGridViewRow.ContextMenuStrip Özellik

Tanım

Satırın kısayol menüsünü alır veya ayarlar.

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; }
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

Özellik Değeri

ContextMenuStrip Geçerli DataGridViewRowile ilişkili . Varsayılan değer: null.

Özel durumlar

Bu özelliğin değerini alırken, satır bir DataGridView denetimdedir ve paylaşılan bir satırdır.

Örnekler

Aşağıdaki kod örneği, sınıfının özelliğiyle DataGridViewColumn.ContextMenuStrip neredeyse aynı olan özelliğinin ContextMenuStripDataGridViewRow nasıl kullanılacağını gösterir. Bu kod örneği, sınıfında sağlanan daha büyük bir kod örneğinin DataGridViewColumn bir parçasıdır.

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

Açıklamalar

Bu özellik, denetim CellContextMenuStripNeeded olayı veya satır ContextMenuStrip özelliği tıklanan hücrenin kısayol menüsünü geçersiz kılmadığı sürece DataGridView kullanıcı satıra sağ tıkladığında görüntülenen kısayol menüsünü gösterir.

DataGridView Denetim DataSource özelliği ayarlandığında veya VirtualMode özelliği olduğundatrue, özelliğinin ContextMenuStrip değerini almak denetimin olayını tetikler RowContextMenuStripNeeded ve olay işleyicisinde belirtilen özelliğin DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip değerini döndürür. Olay için işleyici yoksa, özelliğinin ContextMenuStrip değerini almak daha önce belirtilen değeri veya varsayılan değerini nulldöndürür.

RowContextMenuStripNeeded Olayı işlemek, birden çok satır için satır ContextMenuStrip değerini ayarlarken performans cezalarını önlemek için büyük miktarda veriyle çalışırken öncelikli olarak yararlıdır. Daha fazla bilgi için bkz. Windows Forms DataGridView Denetimini Ölçeklendirmeye Yönelik En İyi Yöntemler.

Bu özelliğin RowContextMenuStripChanged değiştirilmesi, varsa olayı sahip olan üzerinde tetikler DataGridView.

Geçerli satır paylaşılıyorsa, bu özelliğin GetContextMenuStrip değerini almak yerine yöntemini kullanın.

Şunlara uygulanır

Ayrıca bkz.