Общий обзор и составные элементы

Рассмотрим элементный фундамент, на котором основывается вся эта функциональная мощь. В своей простейшей форме DataGridView имеет базисные компоненты, представленные на рисунке 1.


Рисунок 1.

Помимо базисных элементов и базисного внешнего вида у этого control-а есть базовое поведение. Иными словами, если поместить новый DataGridView на форму и не производить никаких спецнастроек, то control будет:

  • Автоматически показывать заголовки колонок и заголовки строк. И те, и другие остаются видимыми при любом скроллинге.
  • Ставить на одном из заголовков строк маркер (черный треугольничек) текущей строки.
  • Выбирать целую строку, если пользователь щелкнет по заголовку строки.
  • Выбирать сразу несколько строк, если щелчок по заголовку строки производится с зажатым Ctrl или Shift. При этом текущая строка (помеченная треугольничком) всегда будет единственной.
  • Удалять все выбранные строки по нажатию на Delete.
  • Отображать ячейку, имеющую фокус ввода, особым образом.
  • Если пользователь выполнит двойной щелчок по разделителю колонок, будет произведена автоподборка ширины левой колонки.
  • Если в методе Main приложения был вызван метод EnableVisualStyles, будет применяться стиль Windows XP, выбранный в настройках рабочего стола.

Помимо этого control будет поддерживать редактирование содержимого:

  • Если пользователь выполнит двойной щелчок по ячейке (или нажмет на ней F2), данная ячейка будет переведена в режим редактирования.
  • Если пользователь изменит хотя бы один символ в редактируемой ячейке, на заголовке соответствующей строки появится спецсимвол (пишущий карандашик), и будет отображаться до тех пор, пока фокус ввода не покинет редактируемую ячейку, или пока пользователь не нажмет Esc. Последнее действие восстановит то значение ячейки, которое она содержала до входа в режим редактирования.
  • Если пользователь прокрутит control вниз до последней строчки, будет отображена дополнительная, специальная строчка для внесения новой записи. Такая строчка всегда помечена символом звездочки на заголовке. Когда пользователь любым способом перемещается в эту строку, DataGridView добавляет новую запись со значениями по умолчанию. Если фокус ввода находится в этой строке, и пользователь нажимает Esc, новая запись пропадает, а фокус ввода перемещается на строчку выше.

Если DataGridView привязан через свойство DataSource к источнику данных, то по умолчанию выполняется следующее.

  • Каждая колонка, получаемая из источника данных, вызовет добавление соответствующей колонки в control-е.
  • Названия колонок источника отобразятся в заголовках колонок.
  • Если пользователь щелкнет по заголовку колонки, строки будут автоматически отсортированы.

Излишне говорить, что практически все из перечисленного выше может быть разрешено/запрещено/настроено.