щелкните правой кнопкой по контекстному меню для datagridview

Конечно, все эти ярлыки доступны в меню, но у кого есть время для этого, когда Вы находитесь в "зоне".

мне нравится замена в горячем режиме кода.

108
задан kodkod 9 February 2015 в 17:04
поделиться

2 ответа

Вы можете использовать CellMouseEnter и CellMouseLeave для отслеживания номера строки, над которой в данный момент наведена мышь.

Затем используйте объект ContextMenu для отображения всплывающего меню, настроенного для текущей строки.

Вот быстрый и грязный пример того, что я имею в виду .. .

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        ContextMenu m = new ContextMenu();
        m.MenuItems.Add(new MenuItem("Cut"));
        m.MenuItems.Add(new MenuItem("Copy"));
        m.MenuItems.Add(new MenuItem("Paste"));

        int currentMouseOverRow = dataGridView1.HitTest(e.X,e.Y).RowIndex;

        if (currentMouseOverRow >= 0)
        {
            m.MenuItems.Add(new MenuItem(string.Format("Do something to row {0}", currentMouseOverRow.ToString())));
        }

        m.Show(dataGridView1, new Point(e.X, e.Y));

    }
}
135
ответ дан 24 November 2019 в 03:26
поделиться

Просто перетащите компонент ContextMenu или ContextMenuStrip в свою форму и визуально спроектируйте ее, затем назначьте ее свойству ContextMenu или ContextMenuStrip желаемого элемента управления.

4
ответ дан 24 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: