我試圖在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許可證後才能提供幫助。 –