/// <summary> /// Returns a Collection of range that represents the current class /// </summary> /// <returns></returns> public virtual RangeCollection GetRanges() { RangeCollection ranges = new RangeCollection(); ranges.AddRange(m_RangeCollection); return(ranges); }
/// <summary> /// Prende un range che è già stato filtrato con solo le celle non presenti nell'attuale range /// </summary> /// <param name="pRange"></param> /// <returns></returns> private bool InternalAdd(RangeRegion pRange) { if (Contains(pRange)) { return(true); } if (pRange.Contains(this)) //change all the contents with the new range { RangeRegion existingRange = new RangeRegion(this); m_RangeCollection.Clear(); m_RangeCollection.AddRange(pRange.m_RangeCollection); pRange = pRange.Exclude(existingRange); } else { pRange = pRange.Exclude(this); if (pRange.IsEmpty()) { return(true); //il range è vuoto } pRange.m_bValidated = true; RangeRegionCancelEventArgs e = new RangeRegionCancelEventArgs(pRange); OnAddingRange(e); //calling this method the range can change if (e.Cancel) { return(false); } if (pRange.m_bValidated == false) { pRange = pRange.Exclude(this); if (pRange.IsEmpty()) { return(true); //il range è vuoto } } for (int rToAdd = 0; rToAdd < pRange.m_RangeCollection.Count; rToAdd++) { Range rangeToAdd = pRange.m_RangeCollection[rToAdd]; m_RangeCollection.Add(rangeToAdd); } } OnAddedRange(new RangeRegionCancelEventArgs(pRange)); m_bValidated = false; return(true); }