Страница 16

Все о DataGridView. Учебник

Главная
Страница 1
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 7
Страница 8
Страница 9
Страница 10
Страница 11
Страница 12
Страница 13
Страница 14
Страница 15
Страница 16
Страница 17
Страница 18
Страница 19
Страница 20
Страница 21
Страница 22
Страница 23
Страница 24
Страница 25
Страница 26






Скачать учебник
Предыдущая страница
Следующая страница
= ushort.MaxValue;
 
      Controls.Add(_grid);
      ((ISupportInitialize)_grid).EndInit();
    }
 
    DataGridView _grid = new DataGridView();
    // хеш-таблица, хранящая данные заполненных ячеек
    Dictionary<int, object> _values = new Dictionary<int, object>();
 
    // вычисляет ключ по значениям индексов строки и колонки
    static int CalcKey(int rowIndex, int columnIndex)
    {
      return rowIndex + (columnIndex << 16);
    }
 
    // обработчик события, генерируемого при запросе данных grid-ом
    private void _dataGridView_CellValueNeeded(
      object sender, DataGridViewCellValueEventArgs e)
    {
      object value;
 
      if (_values.TryGetValue(CalcKey(e.RowIndex, e.ColumnIndex), out value))
        e.Value = value;
    }
 
    // обработчик события, генерируемого при изменении данных ячейки
    private void _dataGridView_CellValuePushed(
      object sender, DataGridViewCellValueEventArgs e)
    {
      _values[CalcKey(e.RowIndex, e.ColumnIndex)] = e.Value;
    }
  }
}



Рисунок 16.

Интерес могут представлять также еще несколько событий. Событие NewRowNeeded вызывается, когда grid переходит в режим ввода новой строки. Заметьте, что при этом новая строка еще не создана, и если пользователь сойдет со строки, не введя никаких данных, новая строка создана не будет. Событие CancelRowEdit генерируется, когда пользователь отменяет редактирование или встаку строки. Событие UserDeletingRow генерируется, если пользователь удаляет строку целиком, выделив ее заголовок и нажав клавишу Del.

По ссылке http://msdn2.microsoft.com/en-us/library/2b177d6d(VS.80).aspx можно найти пример реализации работы с большими наборами данных с помощью виртуального режима работы control-а DataGridView. По приведенным там ссылкам можно найти и другие примеры работы с виртуальным режимом. Например, по ссылке http://msdn2.microsoft.com/en-us/library/ms171624.aspx доступен пример, в котором производится динамическая подгрузка

Предыдущая страница
Следующая страница
Хостинг от uCoz