Udostępnij za pośrednictwem


DataGridViewRow.ContextMenuStrip Właściwość

Definicja

Pobiera lub ustawia menu skrótów dla wiersza.

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

Wartość właściwości

Skojarzony ContextMenuStrip z bieżącym DataGridViewRowelementem . Wartość domyślna to null.

Wyjątki

Podczas pobierania wartości tej właściwości wiersz znajduje się w kontrolce DataGridView i jest udostępnionym wierszem.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać DataGridViewColumn.ContextMenuStrip właściwości, która jest niemal identyczna z ContextMenuStrip właściwością DataGridViewRow klasy. Ten przykład kodu jest częścią większego przykładu kodu podanego DataGridViewColumn w klasie.

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

Uwagi

Ta właściwość wskazuje menu skrótów wyświetlane, gdy użytkownik kliknie prawym przyciskiem myszy wiersz, chyba że DataGridView zdarzenie sterujące CellContextMenuStripNeeded lub właściwość wiersza ContextMenuStrip zastąpi menu skrótów dla określonej komórki, która została kliknięta.

DataGridView Gdy właściwość kontrolki DataSource jest ustawiona lub jej VirtualMode właściwość to true, uzyskanie wartości ContextMenuStrip właściwości zgłasza RowContextMenuStripNeeded zdarzenie kontrolki i zwraca wartość DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip właściwości określonej w procedurze obsługi zdarzeń. Jeśli dla zdarzenia nie ma żadnych procedur obsługi, pobranie wartości ContextMenuStrip właściwości zwraca wcześniej określoną wartość lub jego wartość domyślną .null

Obsługa zdarzenia RowContextMenuStripNeeded jest przede wszystkim przydatna podczas pracy z dużymi ilościami danych, aby uniknąć kar za wydajność podczas ustawiania wartości wiersza ContextMenuStrip dla wielu wierszy. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące skalowania kontrolki Windows Forms DataGridView.

Zmiana tej właściwości powoduje podniesienie RowContextMenuStripChanged zdarzenia na własność DataGridView, jeśli istnieje.

Jeśli bieżący wiersz jest współużytkowany, użyj GetContextMenuStrip metody zamiast uzyskać wartość tej właściwości.

Dotyczy

Zobacz też