您的位置:首页 > 其它

DevExpress 从一个XtraGridControl 拖拽行到另外一个

2016-02-10 12:29 323 查看
using DevExpress.XtraGrid;

using DevExpress.XtraGrid.Views.Base;

using DevExpress.XtraGrid.Views.Grid;

using DevExpress.XtraGrid.Views.Grid.ViewInfo;

GridHitInfo downHitInfo = null;

private void view_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {

GridView view = sender as GridView;

downHitInfo = null;

GridHitInfo hitInfo = view.CalcHitInfo(new Point(e.X, e.Y));

if(Control.ModifierKeys != Keys.None) return;

if(e.Button == MouseButtons.Left && hitInfo.RowHandle >= 0)

downHitInfo = hitInfo;

}

private void view_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {

GridView view = sender as GridView;

if(e.Button == MouseButtons.Left && downHitInfo != null) {

Size dragSize = SystemInformation.DragSize;

Rectangle dragRect = new Rectangle(new Point(downHitInfo.HitPoint.X - dragSize.Width / 2,

downHitInfo.HitPoint.Y - dragSize.Height / 2), dragSize);

if(!dragRect.Contains(new Point(e.X, e.Y))) {

DataRow row = view.GetDataRow(downHitInfo.RowHandle);

view.GridControl.DoDragDrop(row, DragDropEffects.Move);

downHitInfo = null;

DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = true;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: