DataGridView.RowContextMenuStripNeeded Olay

Tanım

Satırın kısayol menüsü gerektiğinde gerçekleşir.

public:
 event System::Windows::Forms::DataGridViewRowContextMenuStripNeededEventHandler ^ RowContextMenuStripNeeded;
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 

Olay Türü

Örnekler

Aşağıdaki kod örneği, çalışanın RowContextMenuStripNeeded unvanını temel alan bir ContextMenuStrip sağlamak için olayı işler. Bu örnekte, biri yöneticiler ve diğeri diğer tüm çalışanlar için iki kısayol menüsü vardır.

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

Açıklamalar

Olay RowContextMenuStripNeeded yalnızca DataGridView denetim DataSource özelliği ayarlandığında veya VirtualMode özelliği olduğunda truegerçekleşir. Bir satırın RowContextMenuStripNeeded geçerli durumuna veya içerdiği değerlere göre belirlenen bir kısayol menüsü görüntülemek istediğinizde olayı işleme yararlı olur.

Olayı işlediğinizde RowContextMenuStripNeeded , kullanıcı tıklanan hücrenin kısayol menüsünü geçersiz kılmadığı sürece, kullanıcı bir satıra sağ tıkladığında CellContextMenuStripNeeded işleyicide belirttiğiniz kısayol menüsü gösterilir.

Olay RowContextMenuStripNeeded ayrıca, özelliğin DataGridViewRow.ContextMenuStrip değeri program aracılığıyla veya kullanıcı bir satıra sağ tıkladığında da gerçekleşir.

bir satırın DataGridViewRowContextMenuStripNeededEventArgs.RowIndex veya içerdiği değerlerin durumunu belirlemek için özelliğini kullanabilir ve bu bilgileri özelliği değiştirmek veya değiştirmek için kullanabilirsiniz DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip . Bu özellik, olay değerinin geçersiz kıldığı satır ContextMenuStrip özelliğinin değeriyle başlatılır.

RowContextMenuStripNeeded Birden çok satır için satır ContextMenuStrip değerini ayarlamanın performans cezalarını önlemek için büyük miktarda veriyle çalışırken olayı işleyebilir. Daha fazla bilgi için bkz. Windows Forms DataGridView Denetimini Ölçeklendirmeye Yönelik En İyi Yöntemler.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ayrıca bkz.