winfrom 拖动gridView1表格的行列到gridView2中去

 拖动gridView1表格的行列到gridView2中去
private void datagridControl1_MouseDown(object sender, MouseEventArgs e)
        {
            downHitInfo = gridView2.CalcHitInfo(new Point(e.X, e.Y));
        }
 
        private void datagridControl1_MouseMove(object sender, MouseEventArgs e)
        {
            if (downHitInfo == null)
                return;
            if (e.Button != MouseButtons.Left)
                return;
            Rectangle dragRect = new Rectangle(new Point(
            downHitInfo.HitPoint.X - SystemInformation.DragSize.Width / 2,
            downHitInfo.HitPoint.Y - SystemInformation.DragSize.Height / 2), SystemInformation.DragSize);
            if (!dragRect.Contains(new Point(e.X, e.Y)))
            {   
                 DataRow data = gridView2.GetDataRow(downHitInfo.RowHandle);//数据库
                int[] rows = gridView2.GetSelectedRows();
                List<DataRow> row = new List<DataRow>();
                for (int i = 0; i < rows.Length; i++)
                row.Add(gridView2.GetDataRow((int)rows[i]));
                datagridControl1.DoDragDrop(row, DragDropEffects.Copy);
            }
        }
 
        private void dataGridView2_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
        }
 
        private void dataGridView2_DragDrop(object sender, DragEventArgs e)
        {
            GridControl grid = sender as GridControl;
            DataTable table = grid.DataSource as DataTable;         
             List<DataRow> row = e.Data.GetData(typeof(List<DataRow>)) as List<DataRow>;
            if (row != null && table != null)
            {
                if (row.Count > 0)
                {
                    for (int i = 0; i < row.Count; i++)
                    {
                        table.ImportRow(row[i]);
                        row[i].Delete();
                    }
                }
            }
        }
posted @ 2021-06-03 16:37  lorys  阅读(70)  评论(0)    收藏  举报