示例#1
0
        private void Selection_SelectionChange(object sender, SelectionChangedEventArgs e)
        {
            if (EnableRowColSpan)
              {
            if (e.EventType == SelectionChangedEventType.Add)
            {
              for (int r = e.Range.Start.Row; r <= e.Range.End.Row; r++)
              {
            for (int c = e.Range.Start.Column; c <= e.Range.End.Column; c++)
            {
              ICell l_Cell = this[r, c];
              if (l_Cell != null)
              {
                Range l_Range = l_Cell.Range;

                if (l_Range != new Range(new Position(r, c)))
                {
                  Selection.AddRange(l_Range);
                }
              }
            }
              }
            }
            else if (e.EventType == SelectionChangedEventType.Remove)
            {
              for (int r = e.Range.Start.Row; r <= e.Range.End.Row; r++)
              {
            if (Selection.SelectionMode != GridSelectionMode.Row)
            {
              for (int c = e.Range.Start.Column; c <= e.Range.End.Column; c++)
              {
                ICell l_Cell = this[r, c];
                if (l_Cell != null)
                {
                  Range l_Range = l_Cell.Range;

                  if (l_Range != new Range(new Position(r, c)))
                  {
                    Selection.RemoveRange(l_Range);
                  }
                }
              }
            }
            else if (Selection.ContainsRow(e.Range.Start.Row))
            {
              Selection.RemoveRange(new Range(new Position(r, 0), new Position(r, ColumnsCount - 1)));
            }
              }
            }
              }
        }
示例#2
0
        /// <summary>
        /// Fired when a cell is added from the selection or removed from the selection
        /// </summary>
        /// <param name="e">The <see cref="Fr.Medit.MedDataGrid.SelectionChangedEventArgs"/> instance containing the event data.</param>
        protected virtual void OnSelectionChange(SelectionChangedEventArgs e)
        {
            ClearCache();

              if (e.EventType == SelectionChangedEventType.Add || e.EventType == SelectionChangedEventType.Remove)
              {
            this.grid.InvalidateRange(e.Range);
              }
              else
              {
            this.grid.InvalidateCells();
              }

              if (SelectionChanged != null)
              {
            SelectionChanged(this, e);
              }
        }