private void ResetTempData() { mRangeData = null; if (mHighlightedRange != null) { mHighlightedRange.Range = Range.Empty; if (mHighlightedRange.Grid.HighlightedRanges.Contains(mHighlightedRange)) { mHighlightedRange.Grid.HighlightedRanges.Remove(mHighlightedRange); } mHighlightedRange = null; } }
private void grid_DragOver(GridVirtual sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(RangeData))) { ResetTempData(); mRangeData = (RangeData)e.Data.GetData(typeof(RangeData)); if (mRangeData.CutMode == CutMode.None) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.Move; } Position mousePos = sender.PositionAtPoint(sender.PointToClient(new System.Drawing.Point(e.X, e.Y))); if (mousePos.IsEmpty() == false) { Range rngDest = mRangeData.FindDestinationRange(sender, mousePos); if (rngDest.IsEmpty() == false) { mHighlightedRange = new HighlightedRange(sender); mHighlightedRange.Range = rngDest; mHighlightedRange.Border = mHighlightedRange.Border.SetDashStyle(System.Drawing.Drawing2D.DashStyle.DashDotDot); sender.HighlightedRanges.Add(mHighlightedRange); } } } else { e.Effect = DragDropEffects.None; ResetTempData(); } }