最近在使用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

05-25 19:21