如何识别右键单击ContextMenuStrip的dataGridView单元格?用户右键单击DGV中的单元格并在ContextMenuStrip中进行选择。根据他们选择的CMS,我想做一些事情(复制、隐藏、过滤)。我的问题是识别右键单击的单元格。我正在尝试使用以下方法处理这种情况,但我无法引用[ColumnIndex]。privatevoidcmsDataGridView_ItemClicked(objectsender,ToolStripItemClickedEventArgse){switch(e.ClickedItem.Text){case"复制":break;case"FilterOn":break;case"HideColumn":DataGridViewBandband=dataGridView1.Columns[e.列索引];band.Visible=false;休息;我应该用两种不同的方式来做吗?一个处理鼠标点击(然后我可以捕获DGV列索引),然后从那里调用CMS项目点击事件?谢谢你的帮助,布莱恩。适用于我的代码。哦,我不得不从设计器中的dataGridView的ContextMenuStrip属性中删除cmsDataGridView方法。离开那里可能会导致问题。//识别为cmsDataGridView单击的单元格DataGridViewCellclickedCell;privatevoiddataGridView1_CellMouseClick(objectsender,DataGridViewCellMouseEventArgse){try{if(e.Button==MouseButtons.Right){dataGridView1.ClearSelection();clickedCell[View1.dataGrids=RowIndex].Cells[e.ColumnIndex];clickedCell.Selected=true;cmsDataGridView.Show(dataGridView1,e.Location);}}catch(Exceptionex){Console.WriteLine(ex.Message+Environment.NewLine+ex.StackTrace);}}privatevoidcmsDataGridView_ItemClicked(objectsender,ToolStripItemClickedEventArgse){switch(e.ClickedItem.Text){case"Copy":break;case"FilterOn":break;case"HideColumn":DataGridViewBandband=dataGridView1.列[clickedCell.ColumnIndex];band.Visible=false;休息;您可以通过为DataGridView的鼠标单击添加事件处理程序来跟踪最后单击哪个单元格。类似于:DataGridViewCellclickedCell;privatevoiddataGridView1_CellMouseClick_1(objectsender,DataGridViewCellMouseEventArgse){try{DataGridViewview=(DataGridView)sender;if(e.Button==System.Windows.Forms.MouseButtons.Right&&e.RowIndex>=0){Console.WriteLine("Clickedcolumn"+e.ColumnIndex+",row"+e.RowIndex+"ofDataGridView"+view.Name+"在"+System.Windows.Forms.Cursor.Position);clickedCell=view.Rows[e.RowIndex].Cells[e.ColumnIndex];}}catch(Exceptionex){Console.WriteLine(ex.Message+Environment.NewLine+ex.StackTrace);然后在你的contextMenuStripItem单点击事件中,打开clickedCell.Value像:switch(clickedCell.Value){case"Copy":break;...//等}您可以将HitTest与datagridview结合使用来执行此操作。这是我使用过的代码示例。DataGridViewdgv=(DataGridView)发送者;如果(e.Button==System.Windows.Forms.MouseButtons.Right){try{dgv.CurrentCell=dgv[gvw.HitTest(eX,eY).ColumnIndex,dgv.HitTest(eX,eY).RowIndex];然后您可以使用DGV.CurrentCell查找所有信息。以上就是C#学习教程:如何识别ContextMenuStrip的右键dataGridView单元格?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注——switch""{case""break;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
