У меня есть общий ContextMenuStrip
для каждого контроля рабочего пространства моего приложения. Этот ContextMenuStrip
содержит 4 элемента («Переместить вперед», «Переместить назад» и «Удалить элемент управления»).Как расширить существующий ContextMenuStrip?
Теперь я хочу расширить его для одного элемента управления. На этом элементе есть DataGridView
, и я хочу, чтобы дополнительный элемент удалял выбранный DataGridViewRow
.
Это код, который я попробовал:
private void extendContextMenuOfDataGridViewRow (DataGridViewRow row) {
ContextMenuStrip ctx = new ContextMenuStrip();
foreach (ToolStripMenuItem item in this.ContextMenuStrip.Items) {
ctx.Items.Add(item);
}
ctx.Items.Add(new ToolStripSeparator());
ToolStripMenuItem ctxDeleteRow = new ToolStripMenuItem("Delete row");
ctxDeleteRow.Name = "ctxDeleteRow";
ctxDeleteRow.Click += new EventHandler(ctxDeleteRow_Click);
ctx.Items.Add(ctxDeleteRow);
row.ContextMenuStrip = ctx;
}
После того, как первый элемент цикла foreach
был добавлен в ctx.Items
отладчик оставляет весь метод и первый элемент отсутствует в общей ContextMenuStrip
.
Как мне это сделать?
«Переместить фронт», «вернуться назад» и «удалить управление» = 3 элемента, а не 4. – walther
Что именно вы пытаетесь достичь? Вы хотите добавить MenuItem в свой ContextMenuStrip, когда произойдет событие? –
Я написал [separator] как четвертый элемент (но, как html-теги). Я думаю, что это причина, по которой она исчезла. – pinki