小编PHB*_*gle的帖子

如何识别右键单击ContextMenuStrip的dataGridView单元格?

用户右键单击DGV中的单元格,然后在ContextMenuStrip中进行选择.基于他们的CMS选择,我想做点什么(复制,隐藏,过滤).我的问题是识别右键单击的单元格.

我试图使用以下方法处理此方案,但无法引用[ColumnIndex].

private void cmsDataGridView_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {
        switch (e.ClickedItem.Text)
        {
            case "Copy":
                break;
            case "Filter On":
                break;
            case "Hide Column":
                DataGridViewBand band = dataGridView1.Columns[e.ColumnIndex];
                band.Visible = false;
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我应该用两种不同的方法吗?一个处理鼠标点击(然后我可以捕获DGV列索引),然后从那里,我调用CMS项目点击事件?

谢谢你的帮助,Brian.


适合我的代码.哦,我必须从设计器中的dataGridView的ContextMenuStrip属性中删除cmsDataGridView方法.离开那里会引起问题.

            // Identify the cell clicked for cmsDataGridView
    DataGridViewCell clickedCell;
    private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        try
        {
            if (e.Button == MouseButtons.Right)
            {
                dataGridView1.ClearSelection();
                clickedCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
                clickedCell.Selected = true;
                cmsDataGridView.Show(dataGridView1, e.Location);
            }

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message + Environment.NewLine + ex.StackTrace);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# datagridview visual-studio-2010 contextmenustrip

4
推荐指数
1
解决办法
1万
查看次数