C# winform datagridview中如何实现鼠标右键点击一行数据出现一个带有删除的菜单,并能执行删除操作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform datagridview中如何实现鼠标右键点击一行数据出现一个带有删除的菜单,并能执行删除操作?相关的知识,希望对你有一定的参考价值。
请高手指教。谢谢!
这是两个属性,点击一行是将其selectionMode属性设为FullRowSelect可以实现选定一行!!而出现鼠标右键是使用的contentmenustrip控件,将datagridview的contentmenustrip属性值绑定到该控件上即可!至于删除菜单可以在contentmenustrip控件中添加!! 参考技术A 首先在程序中添加一个ContexMenuStrip1控件,给该控件添加删除项,把 datagridview的ContexMenuStrip属性项绑定为你所添加的ContexMenuStrip1控件,然后就是你自己编写程序来操作删除具体的东西了本回答被提问者采纳 参考技术B 在MouseDown 事件里面写:
private void KnowledgedataGridView_MouseDown(object sender, MouseEventArgs e)
if (e.Button == MouseButtons.Right) //判断是不是右键
Control control = new Control();
Point ClickPoint = new Point(e.X, e.Y);
control.GetChildAtPoint(ClickPoint);
if (KnowledgedataGridView.HitTest(e.X, e.Y).RowIndex >= 0 && KnowledgedataGridView.HitTest(e.X, e.Y).ColumnIndex >= 0)//判断你点的是不是一个信息行里
KnowledgedataGridView.CurrentCell = KnowledgedataGridView.Rows[KnowledgedataGridView.HitTest(e.X, e.Y).RowIndex].Cells[KnowledgedataGridView.HitTest(e.X, e.Y).ColumnIndex];
ContextMenu con = new ContextMenu();
MenuItem menuAddknowledge = new MenuItem("添加知识点");
MenuItem menuLine1 = new MenuItem("-");
MenuItem menuUpdateknowledge = new MenuItem("修改修改知识点");
MenuItem menuLine2 = new MenuItem("-");
MenuItem menuDeleteknowledge = new MenuItem("删除知识点");
menuAddknowledge.Click += new EventHandler(tSButAdd_Click);
menuUpdateknowledge.Click += new EventHandler(tSButUpdate_Click);
menuDeleteknowledge.Click += new EventHandler(tSButDel_Click);
con.MenuItems.Add(menuAddknowledge);
con.MenuItems.Add(menuLine1);
con.MenuItems.Add(menuUpdateknowledge);
con.MenuItems.Add(menuLine2);
con.MenuItems.Add(menuDeleteknowledge);
this.KnowledgedataGridView.ContextMenu = con;
con.Show(KnowledgedataGridView, new Point(e.X + 10, e.Y));
以上是关于C# winform datagridview中如何实现鼠标右键点击一行数据出现一个带有删除的菜单,并能执行删除操作?的主要内容,如果未能解决你的问题,请参考以下文章
c# winform datagridview界面上的行删了,但datagridview数据源没有同步如何解决
c# winform datagridview怎么能达到如图的效果
C# winform 如何用datagridview增、删、改数据
winform c# Datagridview 选中行 急!!!