Bagikan melalui


DataGridViewRow.ContextMenuStrip Properti

Definisi

Mendapatkan atau mengatur menu pintasan untuk baris.

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

Nilai Properti

Yang ContextMenuStrip terkait dengan saat ini DataGridViewRow. Default adalah null.

Pengecualian

Saat mendapatkan nilai properti ini, baris berada dalam DataGridView kontrol dan merupakan baris bersama.

Contoh

Contoh kode berikut menunjukkan cara menggunakan DataGridViewColumn.ContextMenuStrip properti , yang hampir identik ContextMenuStrip dengan properti DataGridViewRow kelas . Contoh kode ini adalah bagian dari contoh kode yang lebih besar yang disediakan di DataGridViewColumn kelas .

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

Keterangan

Properti ini menunjukkan menu pintasan yang ditampilkan saat pengguna mengklik kanan baris kecuali DataGridView peristiwa kontrol CellContextMenuStripNeeded atau properti baris ContextMenuStrip menimpa menu pintasan untuk sel tertentu yang diklik.

DataGridView Ketika properti kontrol DataSource diatur atau propertinya VirtualMode adalah true, mendapatkan nilai ContextMenuStrip properti akan meningkatkan RowContextMenuStripNeeded peristiwa kontrol dan mengembalikan nilai DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip properti seperti yang ditentukan dalam penanganan aktivitas. Jika tidak ada penangan untuk peristiwa, mendapatkan nilai ContextMenuStrip properti mengembalikan nilai yang ditentukan sebelumnya atau nilai defaultnya .null

Menangani RowContextMenuStripNeeded peristiwa terutama berguna saat bekerja dengan data dalam jumlah besar untuk menghindari penalti performa saat mengatur nilai baris ContextMenuStrip untuk beberapa baris. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk Menskalakan Kontrol Formulir Windows DataGridView.

Mengubah properti ini akan meningkatkan RowContextMenuStripChanged peristiwa yang dimiliki DataGridView, jika ada.

Jika baris saat ini dibagikan, gunakan GetContextMenuStrip metode daripada mendapatkan nilai properti ini.

Berlaku untuk

Lihat juga