最近在使用GridControl的拖拽功能时候遇到了一个问题:当GridControl触发DropDrop事件时,计算对应的RowHandle错误。当把鼠标拖拽到GridView一个单元格的靠上面的部分时,显示为较小的一个RowHandle;当拖拽到单元格靠下面的部分的时候,显示为较大的一个RowHandle;而且两个RowHandle的值都不对。
经在网上查资料得到如下解决办法(DevExpress版本11.2):
private void gridControl1_DragDrop(object sender, DragEventArgs e) { GridControl grid = sender as GridControl; Point pt = grid.PointToClient(new Point(e.X, e.Y)); GridView view = grid.GetViewAt(pt) as GridView; if (view == null) return; GridHitInfo hitInfo = gridView1.CalcHitInfo(pt); if (hitInfo.InRowCell) MessageBox.Show(hitInfo.RowHandle.ToString() + "----" + hitInfo.RowHandle.ToString());
至于为啥这么做,还不到原因 :-D