Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用单次右键单击,双击datagridview(winform)仅选择行_C#_Winforms_Datagridview - Fatal编程技术网

C# 禁用单次右键单击,双击datagridview(winform)仅选择行

C# 禁用单次右键单击,双击datagridview(winform)仅选择行,c#,winforms,datagridview,C#,Winforms,Datagridview,我想禁用datagridview上的单次右键单击 并通过双击仅选择行 Datadridview属性: 1.全行选择 2.无多选 My Code: private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { dgvindex = dataGridView1.CurrentRow.Index; } privat

我想禁用datagridview上的单次右键单击

并通过双击仅选择行

Datadridview属性:

1.全行选择

2.无多选

My Code:
     private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        dgvindex = dataGridView1.CurrentRow.Index;
    }


    private void dataGridView1_SelectionChanged(object sender, EventArgs e)
    {
        if (dataGridView1.CurrentRow.Index != dgvindex)
        {
            dataGridView1.Rows[dgvindex].Selected = true;
            dataGridView1.CurrentCell = dataGridView1.Rows[dgvindex].Cells[0];

        }
    }
但当我双击该行时,它卡住了

我想在双击和右键单击时设置当前行

并在右键单击时打开ContexMenuStrip

请给我一些建议


我该怎么办?

一种快速而肮脏的方法是从datagridview派生并覆盖WndProc,检查点击,如果点击只是返回,则让点击滚动,但它会在datagridview中完全禁用单次点击……这是不必要的复杂。执行此操作时,将不再允许用户编辑单元格。所以只需设置ReadOnly=true和SelectionMode=FullRowSelect。完成了。你到底想要什么还不清楚。我猜只有在鼠标右键单击当前选定的行时,您才可能希望显示上下文菜单,要选择行,用户只需单击它或双击它,您应该确认或重新表述您的问题。