| File: System\Windows\Forms\Controls\DataGridView\Datagridview.DisplayedBandsData.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Windows.Forms; public partial class DataGridView { internal class DisplayedBandsData { private bool _dirty; private int _firstDisplayedFrozenRow; private int _firstDisplayedFrozenCol; private int _numDisplayedFrozenRows; private int _numDisplayedFrozenCols; private int _numTotallyDisplayedFrozenRows; private int _firstDisplayedScrollingRow; private int _numDisplayedScrollingRows; private int _numTotallyDisplayedScrollingRows; private int _firstDisplayedScrollingCol; private int _numDisplayedScrollingCols; private int _lastTotallyDisplayedScrollingCol; private int _lastDisplayedScrollingRow; private int _lastDisplayedFrozenCol; private int _lastDisplayedFrozenRow; private int _oldFirstDisplayedScrollingRow; private int _oldFirstDisplayedScrollingCol; private int _oldNumDisplayedFrozenRows; private int _oldNumDisplayedScrollingRows; private bool _rowInsertionOccurred; private bool _columnInsertionOccurred; public DisplayedBandsData() { _firstDisplayedFrozenRow = -1; _firstDisplayedFrozenCol = -1; _firstDisplayedScrollingRow = -1; _firstDisplayedScrollingCol = -1; _lastTotallyDisplayedScrollingCol = -1; _lastDisplayedScrollingRow = -1; _lastDisplayedFrozenCol = -1; _lastDisplayedFrozenRow = -1; _oldFirstDisplayedScrollingRow = -1; _oldFirstDisplayedScrollingCol = -1; } public bool ColumnInsertionOccurred { get { return _columnInsertionOccurred; } } public bool Dirty { get { return _dirty; } set { _dirty = value; } } public int FirstDisplayedFrozenCol { set { if (value != _firstDisplayedFrozenCol) { EnsureDirtyState(); _firstDisplayedFrozenCol = value; } } } public int FirstDisplayedFrozenRow { set { if (value != _firstDisplayedFrozenRow) { EnsureDirtyState(); _firstDisplayedFrozenRow = value; } } } public int FirstDisplayedScrollingCol { get { return _firstDisplayedScrollingCol; } set { if (value != _firstDisplayedScrollingCol) { EnsureDirtyState(); _firstDisplayedScrollingCol = value; } } } public int FirstDisplayedScrollingRow { get { return _firstDisplayedScrollingRow; } set { if (value != _firstDisplayedScrollingRow) { EnsureDirtyState(); _firstDisplayedScrollingRow = value; } } } public int LastDisplayedFrozenCol { set { if (value != _lastDisplayedFrozenCol) { EnsureDirtyState(); _lastDisplayedFrozenCol = value; } } } public int LastDisplayedFrozenRow { set { if (value != _lastDisplayedFrozenRow) { EnsureDirtyState(); _lastDisplayedFrozenRow = value; } } } public int LastDisplayedScrollingRow { set { if (value != _lastDisplayedScrollingRow) { EnsureDirtyState(); _lastDisplayedScrollingRow = value; } } } public int LastTotallyDisplayedScrollingCol { get { return _lastTotallyDisplayedScrollingCol; } set { if (value != _lastTotallyDisplayedScrollingCol) { EnsureDirtyState(); _lastTotallyDisplayedScrollingCol = value; } } } public int NumDisplayedFrozenCols { get { return _numDisplayedFrozenCols; } set { if (value != _numDisplayedFrozenCols) { EnsureDirtyState(); _numDisplayedFrozenCols = value; } } } public int NumDisplayedFrozenRows { get { return _numDisplayedFrozenRows; } set { if (value != _numDisplayedFrozenRows) { EnsureDirtyState(); _numDisplayedFrozenRows = value; } } } public int NumDisplayedScrollingRows { get { return _numDisplayedScrollingRows; } set { if (value != _numDisplayedScrollingRows) { EnsureDirtyState(); _numDisplayedScrollingRows = value; } } } public int NumDisplayedScrollingCols { get { return _numDisplayedScrollingCols; } set { if (value != _numDisplayedScrollingCols) { EnsureDirtyState(); _numDisplayedScrollingCols = value; } } } public int NumTotallyDisplayedFrozenRows { get { return _numTotallyDisplayedFrozenRows; } set { if (value != _numTotallyDisplayedFrozenRows) { EnsureDirtyState(); _numTotallyDisplayedFrozenRows = value; } } } public int NumTotallyDisplayedScrollingRows { get { return _numTotallyDisplayedScrollingRows; } set { if (value != _numTotallyDisplayedScrollingRows) { EnsureDirtyState(); _numTotallyDisplayedScrollingRows = value; } } } public int OldFirstDisplayedScrollingCol { get { return _oldFirstDisplayedScrollingCol; } } public int OldFirstDisplayedScrollingRow { get { return _oldFirstDisplayedScrollingRow; } } public int OldNumDisplayedFrozenRows { get { return _oldNumDisplayedFrozenRows; } } public int OldNumDisplayedScrollingRows { get { return _oldNumDisplayedScrollingRows; } } public bool RowInsertionOccurred { get { return _rowInsertionOccurred; } } public void EnsureDirtyState() { if (!_dirty) { _dirty = true; _rowInsertionOccurred = false; _columnInsertionOccurred = false; SetOldValues(); } } public void CorrectColumnIndexAfterInsertion(int columnIndex, int insertionCount) { EnsureDirtyState(); if (_oldFirstDisplayedScrollingCol != -1 && columnIndex <= _oldFirstDisplayedScrollingCol) { _oldFirstDisplayedScrollingCol += insertionCount; } _columnInsertionOccurred = true; } public void CorrectRowIndexAfterDeletion(int rowIndex) { EnsureDirtyState(); if (_oldFirstDisplayedScrollingRow != -1 && rowIndex <= _oldFirstDisplayedScrollingRow) { _oldFirstDisplayedScrollingRow--; } } public void CorrectRowIndexAfterInsertion(int rowIndex, int insertionCount) { EnsureDirtyState(); if (_oldFirstDisplayedScrollingRow != -1 && rowIndex <= _oldFirstDisplayedScrollingRow) { _oldFirstDisplayedScrollingRow += insertionCount; } _rowInsertionOccurred = true; _oldNumDisplayedScrollingRows += insertionCount; _oldNumDisplayedFrozenRows += insertionCount; } private void SetOldValues() { _oldFirstDisplayedScrollingRow = _firstDisplayedScrollingRow; _oldFirstDisplayedScrollingCol = _firstDisplayedScrollingCol; _oldNumDisplayedFrozenRows = _numDisplayedFrozenRows; _oldNumDisplayedScrollingRows = _numDisplayedScrollingRows; } } }