Конечно, все эти ярлыки доступны в меню, но у кого есть время для этого, когда Вы находитесь в "зоне".
мне нравится замена в горячем режиме кода.
Вы можете использовать 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));
}
}
Просто перетащите компонент ContextMenu или ContextMenuStrip в свою форму и визуально спроектируйте ее, затем назначьте ее свойству ContextMenu или ContextMenuStrip желаемого элемента управления.