Cześć!
Mam mały problem.
Piszę aplikację w której miłym dodatkiem byłoby przenoszenie pewnych elementów w tabelach DataGridView.
Po prostu użytkownik przenosi z komórki A pewne wartości (tekstowe) do komórki B.

Oczywiście udało mi się to wykonać, ale problem leży w małym szczególe. Kod wygląda tak:

private void DataGridView1_MouseDown(object sender, MouseEventArgs e)
        {
            DataGridView.HitTestInfo info = this.DataGridView1.HitTest(e.X, e.Y);
            if (info.RowIndex != -1 && info.ColumnIndex != -1)
            {
                Object value = this.DataGridView1.Rows[info.RowIndex].Cells[info.ColumnIndex].Value;
                if (value != null)
                {
                    this.DoDragDrop(value, DragDropEffects.Copy);
                }
            }
        }

        private void DataGridView1_DragDrop(object sender, DragEventArgs e)
        {
            Point p = this.DataGridView1.PointToClient(new Point(e.X, e.Y));
            DataGridView.HitTestInfo info = this.DataGridView1.HitTest(p.X, p.Y);
            if (info.RowIndex != -1 && info.ColumnIndex != -1)
            {
                Object value = (Object)e.Data.GetData(typeof(string));
                
                this.DataGridView1.Rows[info.RowIndex].Cells[info.ColumnIndex].Value = value;
            }
            e.Data.SetData(null);
        }

        private void DataGridView1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
        }

Wszystko działa idealnie, poza pewnym szczegółem.
Gdy przenoszę wartości do innych komórek to po zakończeniu tych operacji muszę kliknąć dwa razy w DataGridView, aby komponent ten się "odblokował".
Jeśli tego nie zrobię to mogę przenosić elementy dowolnie, ale kliknięcie na daną komórkę jest jakby "niezauważone" i nie następuje.

AllowDrop jest oczywiście na true. Po prostu proces przenoszenia jest jakby cały czas aktywny, aż do kliknięcia dwukrotnego (nie szybkiego, ale po prostu jeden klik, a po drugim komponent się odblokuje).

Wie ktoś co może być tego powodem i jak to naprawić?