ContextMenuStrip on close - C#

Узнай цену своей работы

Формулировка задачи:

Пытаюсь сделать контекстное меню для datagridview, чтобы можно было скрывать столбцы. Не могу получить актуальное состояние отмеченных элементов по закрытию меню.
ContextMenuStrip dgvmenu = new ContextMenuStrip();
// код
public Form1()
{  
dgvmenu.Closed += dgvmenu_Closed;
}
//код
foreach (DataGridViewColumn column in dataGridView1.Columns)
            {
                comboBox_sort.Items.Add(column.HeaderText);
                ToolStripMenuItem i = new ToolStripMenuItem();
                i.CheckOnClick=true;
                i.Text = column.HeaderText;
                i.Checked = true;
                dgvmenu.Items.Add(i);
            }
//код
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                int currentMouseOverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;
                dgvmenu.Show(dataGridView1, new Point(e.X, e.Y));               
            }
        }
// код
private void dgvmenu_Closed(Object sender, ToolStripDropDownClosedEventArgs e) 
        {
            label1.Text = "";
            foreach (ToolStripMenuItem i in dgvmenu.Items)
            {
                label1.Text += i.Checked.ToString() + " ";
            }
        }
Выдает предыдущее состояние.

Решение задачи: «ContextMenuStrip on close»

textual
Листинг программы
            label1.Text = "";
            foreach (ToolStripMenuItem i in dgvmenu.Items)
            {
                label1.Text += i.Checked.ToString() + " ";
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5