Главная

Все о 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






Скачать учебник
Предыдущая страница
Следующая страница

Введение

Настоящая статья посвящена одному из самых мощных и сложных control-ов, входящих в состав .NET Framework 2.0, а именно, control-у DataGridView. Изначально я планировал включить ее как подраздел своей статьи “Исследование WinForms 2.0 (beta 2)”. Однако по достоинству оценив все великолепие 153-х свойств, 87-ми методов и 187-ми событий (и это только публичные члены!!!), я понял, что такой гранд-control явно заслуживает отдельной статьи. Справедливости ради отмечу, что к концу написания этой самой статьи мое мнение несколько изменилось, и теперь я считаю, что DataGridView на самом деле заслуживает отдельной книги. :) Как бы там ни было, я постарался использовать формат статьи максимально эффективно и не упустить практически ни единой хоть сколько-нибудь важной детали нового control-а. Рассмотрены не только свойства/методы/события как таковые, но и (по мере возможности) архитектура и идеология, приведшая к возникновению именно этих (а не иных) членов нового класса. Итак... DataGridView на сцене платформы .NET, встречаем!

История и предки

Как известно, в начале был Framework 1.0/1.1 и его приснопамятный control DataGrid. Сказать, что сообщество разработчиков было от него в таком уж диком восторге, было бы, пожалуй, чересчур. Неторопливый, местами не совсем логичный, с далеко не ясной и стройной архитектурой, он, конечно, выполнял свои прямые обязанности, но при этом ставил столько вопросов... В форумах и группах новостей этот “герой” был рекордсменом как по вопросам, непосредственно им самим спровоцированными, так и по жалобам на низкую эффективность, и по восклицаниям типа “а вот как же в нем не хватает!..”. Частенько звучали сетования на сложность (а местами и просто невозможность) настройки поведения данного control-а. Также нельзя сказать, чтобы DataGrid был таким уж “словоохотливым” в деле оповещения программиста о тех или иных действиях пользователя. Одним словом, предшественник исследуемого control-а получился так себе. Так что общего между двумя этими control-ами разве только то, что оба они являются реализацией grid-ов. DataGridView - это абсолютно новый control с совершенно иной архитектурой. Поэтому для разработчиков, много и часто работавших со старым DataGrid, у меня, как полагается, сразу две новости: хорошая состоит в том, что новый control вобрал и реализовал в себе массу пожеланий, оставленных программистами в форумах и письмах в Microsoft, на сайты поддержки и т.п. А плохая заключается в том, что знание (даже очень хорошее) DataGrid вовсе не освобождает их от необходимости внимательного чтения данной статьи. :) Посмотрим, что же такого нового предлагает DataGridView по сравнению с DataGrid. К примеру, лежащие на поверхности различия приведены в таблице 1.

DataGrid - Framework 1.0/1.1

DataGridView - Framework 2.0

Фактически 2 вида колонок: чтобы показать bool-значение и чтобы показать текст (DataGridBoolColumn, DataGridTextBoxColumn – припоминаете?).

Гораздо большее разнообразие типов и способов представления информации. Более того – если вас все еще не удовлетворяет новая палитра колонок, добавление нового (вашего собственного) типа колонки происходит гораздо проще и изящнее.

Используется только внешний источник данных (тот же DataTable, к примеру).

То же плюс может отображать непривязанные (иначе - свободные) данные, сохраненные в самом control-е, плюс комбинация первого и второго.

Умеренные (если не сказать бедные) возможности по настройке отображения данных.

Целая куча событий и свойств направлены исключительно на то, что бы указать, как данные будут отформатированы и отображены. К примеру, внешний вид строк/колонок/ячеек может изменяться в зависимости от тех данных, что они содержат. Или, еще пример, данные одного типа могут быть заменены отображением эквивалентных данных другого типа.

За небольшим исключением “монолитный” control, позволяющий менять внешний вид себя только как единого целого.

Индивидуальные компоненты контрола индивидуально же настраиваются. Примеры: строки/колонки могут быть “заморожены” для предотвращения их скроллинга; строки/колонки, а также их заголовки могут быть индивидуально скрыты; они же могут индивидуально выравниваться; способ, которым пользователь выбирает заинтересовавшие его записи, может быть изменен; строки/колонки/ячейки могут иметь индивидуальные всплывающие подсказки (ToolTips) и быстрые (shortcut) меню; и т.д.

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