如何在DragDrop之后用鼠标选择单元格?

时间:2016-01-05 10:53:39

标签: c# .net events datagridview

我的表单中有两个datagridviews。用户可以选择多个单元格并将它们拖动到树视图节点。

以下是鼠标按下事件的代码:

    private void datagridviews_MouseDown(object sender, MouseEventArgs e)
    {

        if (e.Button == MouseButtons.Right)
        {     Console.WriteLine("mouse down right");
            statuslabel.Text = "";

            DataGridView.HitTestInfo hit = ((DataGridView)sender).HitTest(e.X, e.Y);
            if (hit.Type == DataGridViewHitTestType.Cell)
            {
                var clickedCell = ((DataGridView)sender).Rows[hit.RowIndex].Cells[hit.ColumnIndex];
                clickedCell.Selected = true;
            }

            List<string> cellcontents = new List<string>();
            foreach (DataGridViewCell c in ((DataGridView)sender).SelectedCells)
            {
                cellcontents.Add((string)c.Value);
            }

            if (cellcontents.Count>0)
                ((DataGridView)sender).DoDragDrop(cellcontents, DragDropEffects.Copy);
        }
        else
            Console.WriteLine("mouse down left");

    }

拖放工作,但是当我在完成删除后立即单击原始数据网格视图中的单元格时,我必须单击两次才能选择单元格。

以下是事件的控制台日志 - 右键单击​​是拖放操作,然后正常的鼠标左键单击会触发鼠标按下事件,但不会触发单击单击事件,即使我单击一个单元格。

  鼠标右下
  鼠标向下左   鼠标向下左   单击单元格

为什么单击鼠标左键时第一次点击事件不会触发?

0 个答案:

没有答案