我试图在DevExpress网格中实现拖放功能。我尝试过的第一种方法没有奏效,因为dragdrop
方法没有被击中。我是否必须让它由mouseDown
事件触发,或者我该如何去做这件事。例如,将不胜感激。我试过到目前为止是这样的:在DevExpress网格中拖放
private void gridFields_DragDrop(object sender, DragEventArgs e)
{
GridControl grid = sender as GridControl;
GridView view = grid.MainView as GridView;
GridHitInfo srcHitInfo = e.Data.GetData(typeof(GridHitInfo)) as GridHitInfo;
GridHitInfo hitInfo = view.CalcHitInfo(grid.PointToClient(new Point(e.X, e.Y)));
int sourceRow = srcHitInfo.RowHandle;
int targetRow = hitInfo.RowHandle;
MoveRow(sourceRow, targetRow);
}
private void MoveRow(int sourceRow, int targetRow)
{
if (sourceRow == targetRow || sourceRow == targetRow + 1)
return;
GridView view = gridFieldView;
DataRow row1 = view.GetDataRow(targetRow);
DataRow row2 = view.GetDataRow(targetRow + 1);
DataRow dragRow = view.GetDataRow(sourceRow);
decimal val1 = (decimal)row1[OrderFieldName];
if (row2 == null)
dragRow[OrderFieldName] = val1 + 1;
else
{
decimal val2 = (decimal)row2[OrderFieldName];
dragRow[OrderFieldName] = (val1 + val2)/2;
}
}
你看了DevExpress支持网站吗?如果你问DevExpress的支持,他们会很快告诉你。 –
Devexpress支持的难过部分是他们只有在您获得devexpress许可证后才能提供帮助。 –