Общий обзор и составные элементы
Рассмотрим элементный фундамент, на котором основывается вся эта функциональная мощь. В своей простейшей форме DataGridView имеет базисные компоненты, представленные на рисунке 1.
Рисунок 1.
Помимо базисных элементов и базисного внешнего вида у этого control-а есть базовое поведение. Иными словами, если поместить новый DataGridView на форму и не производить никаких спецнастроек, то control будет:
- Автоматически показывать заголовки колонок и заголовки строк. И те, и другие остаются видимыми при любом скроллинге.
- Ставить на одном из заголовков строк маркер (черный треугольничек) текущей строки.
- Выбирать целую строку, если пользователь щелкнет по заголовку строки.
- Выбирать сразу несколько строк, если щелчок по заголовку строки производится с зажатым Ctrl или Shift. При этом текущая строка (помеченная треугольничком) всегда будет единственной.
- Удалять все выбранные строки по нажатию на Delete.
- Отображать ячейку, имеющую фокус ввода, особым образом.
- Если пользователь выполнит двойной щелчок по разделителю колонок, будет произведена автоподборка ширины левой колонки.
- Если в методе Main приложения был вызван метод EnableVisualStyles, будет применяться стиль Windows XP, выбранный в настройках рабочего стола.
Помимо этого control будет поддерживать редактирование содержимого:
- Если пользователь выполнит двойной щелчок по ячейке (или нажмет на ней F2), данная ячейка будет переведена в режим редактирования.
- Если пользователь изменит хотя бы один символ в редактируемой ячейке, на заголовке соответствующей строки появится спецсимвол (пишущий карандашик), и будет отображаться до тех пор, пока фокус ввода не покинет редактируемую ячейку, или пока пользователь не нажмет Esc. Последнее действие восстановит то значение ячейки, которое она содержала до входа в режим редактирования.
- Если пользователь прокрутит control вниз до последней строчки, будет отображена дополнительная, специальная строчка для внесения новой записи. Такая строчка всегда помечена символом звездочки на заголовке. Когда пользователь любым способом перемещается в эту строку, DataGridView добавляет новую запись со значениями по умолчанию. Если фокус ввода находится в этой строке, и пользователь нажимает Esc, новая запись пропадает, а фокус ввода перемещается на строчку выше.
Если DataGridView привязан через свойство DataSource к источнику данных, то по умолчанию выполняется следующее.
- Каждая колонка, получаемая из источника данных, вызовет добавление соответствующей колонки в control-е.
- Названия колонок источника отобразятся в заголовках колонок.
- Если пользователь щелкнет по заголовку колонки, строки будут автоматически отсортированы.
Излишне говорить, что практически все из перечисленного выше может быть разрешено/запрещено/настроено.