DataGridViewRow.ContextMenuStrip Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 null
zurü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.