首页 > 解决方案 > 鼠标右键单击功能在 DataGridView 中不起作用

问题描述

DataGridView我编写的(C# WinForm 应用程序)中,如果选择了一行并且您右键单击 a RowHeaderContextMenuStrip则会显示 。这意味着ContextMenuStrip只有在您单击时才能显示RowHeader

private void myDataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.Button == MouseButtons.Right && e.RowIndex > -1)
    {
        if (myDataGridView.Rows[e.RowIndex].Selected == true)
        {
            if (myDataGridView.Rows[e.RowIndex].HeaderCell.ColumnIndex == e.ColumnIndex)
            {
                DataGridView ctrl = (DataGridView)sender;
                ctrl.ContextMenuStrip = this.cmsBrisiPrekinitev;
                ctrl.ContextMenuStrip.Show(e.Location);
            }
        }
    }
}

现在,在第一行选择上并右键单击RowHeader它可以正常工作,但之后ContextMenuStrip无论我在哪里DataGridView右键单击都会显示,我无法捕捉任何事件。正确引发了鼠标左键单击事件。

我怎样才能避免这种ContextMenuStrip显示,这可能是什么原因?

标签: c#datagridviewright-clickcontextmenustrip

解决方案


推荐阅读