Freigeben über


DataGridViewRow.ContextMenuStrip Eigenschaft

Definition

Ruft das Kontextmenü für die Zeile ab oder legt dieses fest.

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

Eigenschaftswert

Der der aktuellen ContextMenuStrip zugeordnete DataGridViewRow. Der Standardwert ist null.

Ausnahmen

Beim Abrufen des Werts dieser Eigenschaft befindet sich die Zeile in einem DataGridView-Steuerelement und stellt eine freigegebene Zeile dar.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die DataGridViewColumn.ContextMenuStrip -Eigenschaft verwendet wird, die mit der ContextMenuStrip -Eigenschaft der DataGridViewRow -Klasse nahezu identisch ist. Dieses Codebeispiel ist Teil eines größeren Codebeispiels, das in der DataGridViewColumn -Klasse bereitgestellt wird.

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

Hinweise

Diese Eigenschaft gibt das Kontextmenü an, das angezeigt wird, wenn der Benutzer mit der rechten Maustaste auf die Zeile klickt, es sei denn, das DataGridView Steuerelementereignis CellContextMenuStripNeeded oder die Zeileneigenschaft ContextMenuStrip überschreibt das Kontextmenü für die bestimmte Zelle, auf die geklickt wurde.

Wenn die DataGridView Steuerelementeigenschaft DataSource festgelegt oder ihre VirtualMode Eigenschaft ist true, löst das Abrufen des Werts der ContextMenuStrip -Eigenschaft das RowContextMenuStripNeeded -Ereignis des Steuerelements aus und gibt den Wert der DataGridViewRowContextMenuStripNeededEventArgs.ContextMenuStrip Eigenschaft zurück, wie im Ereignishandler angegeben. Wenn keine Handler für das Ereignis vorhanden sind, gibt das Abrufen des Werts der ContextMenuStrip -Eigenschaft den zuvor angegebenen Wert oder seinen Standardwert von nullzurück.

Die Behandlung des Ereignisses RowContextMenuStripNeeded ist in erster Linie nützlich, wenn Sie mit großen Datenmengen arbeiten, um Leistungseinbußen beim Festlegen des Zeilenwerts ContextMenuStrip für mehrere Zeilen zu vermeiden. Weitere Informationen finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.

Wenn Sie diese Eigenschaft ändern, wird das RowContextMenuStripChanged -Ereignis für das besitzende DataGridViewausgelöst, sofern vorhanden.

Wenn die aktuelle Zeile freigegeben ist, verwenden Sie die GetContextMenuStrip -Methode, anstatt den Wert dieser Eigenschaft zu erhalten.

Gilt für:

Weitere Informationen