我解释了我需要什么:我想要这样,当我右键单击一个单元格时,DataGridView
会在其上显示一个菜单(在单元格上)。
问题是:当我右键单击菜单时,菜单始终显示在菜单顶部,DataGridView
而不是在单击的单元格中。
我右键单击了红点所在的位置,但菜单仍出现在 顶部DataGridView
,依此类推,我右键单击的任何位置。
是时候展示代码了:以下代码是我目前拥有的功能。
private void lista_dias_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenuStrip menu = new ContextMenuStrip();
int posiscion = lista_dias.HitTest(e.X, e.Y).RowIndex;
// if (posiscion >= 0) {
menu.Items.Add("agregar").Name = "AGREGAR";
menu.Items.Add("eliminar").Name = "Eliminar";
menu.Items.Add("detalles").Name = "DETALLES";
//}
menu.Show(lista_dias, new Point(e.X, e.Y));
}
}
所述事件是从 C# 具有的接口自动创建的,事件是CellMouseClick
.
提前感谢您的帮助。
我突然想到,您可以通过获取每个单元格的坐标来做到这一点。
假设你的
DataGridView
名字是:day_list:得到的结果如下:
我希望它可以帮助你...问候!
采用这种结构,它对我来说效果很好。
我解释:在网格内,您右键单击您的记录,然后显示一个选项卡,它为您提供一个选项,在我的情况下为“删除产品”,立即删除所选记录,然后将其删除数据库。
有关我应用的技术的信息:实体框架、C# 和 SQL 服务器。
我希望以某种方式帮助解决您的问题或至少一个想法。