Замечание: Для создания объекта группирующая рамка используется кнопка на панели объектов (Toolbox) в категории Контейнеры, а для создания переключателя — кнопка .
Добавим на форму таблицу для отображения данных (DataGridView) из таблицы «Студенты». Для этого на панели «Источники данных» (“Data Sources”), нажмите кнопку раскрывающегося списка, расположенную справа от таблицы «Студенты». В появившемся списке объектов для отображения всей таблицы выберите “DataGridView” (рис. 149).
Рисунок 149 — Выбор таблицы отображения данных
Перетащите таблицу «Студенты» из панели «Источники данных» (“Data Sources”) на форму. Форма примет следующий вид (рис. 150).
Рисунок 150 — Внешний вид формы с таблицей, опирающейся на информацию из источника данных
Обратите внимание на то, что на форме появилась таблица для отображе- ния данных, подключённая к таблице «Студенты». Также появились объекты связи и панель навигации (рис. 151).
Рисунок 151 — Объекты связи для табличной формы «Студенты»
Теперь перейдём к настройке свойств объектов. Начнём с настройки свойств формы. Задайте свойства формы следующим образом:
FormBorderStyle (Стиль границы формы): Fixed3D;
MaximizeBox (Кнопка развёртывания формы во весь экран): False;
MinimizeBox (Кнопка свёртывания формы на панель задач): False;
Text (Текст надписи в заголовке формы): Таблица «Студенты» (Таблич-
ный вид).
Задайте свойства надписей (Label1, Label2, Label3 и Label4) как:
AutoSize (Авторазмер): False;
Text (Текст надписи): «Таблица «Студенты» (Табличный вид)», «Поле для сортировки», «Фамилия:» и «Критерий» (Соответственно для Label1, Label2, Labeд3 и Label4).
Для надписи Label1 задайте:
Font (Шрифт): Microsoft Sans Serif, размер 14;
ForeColor (Цвет текста): Темно синий;
TextAlign (Выравнивание текста): MiddleCenter.
Задайте надписи на кнопках: «Сортировать», «Фильтровать», «Показать все», «Найти» и «Закрыть» (Соответственно для кнопок Button1, Button2, Button3, Button4 и Button5). Для того чтобы нельзя было произвести сортиров- ку, не выбрав поля изначально, заблокируем кнопку «Сортировать» (Button1) (свойство Enabled = False).
У группирующей рамки задайте заголовок (Свойство Text) равным «Сор- тировка». У переключателей (Объекты RadioButtonl и RadioButton2) задайте надписи как «Сортировка по возрастанию» и «Сортировка по убыванию», а у переключателя «Сортировка по возрастанию» (RadioButtonl) задайте свойство Checked (Включён), равное True (Истина).
Заполните список (ListBox1) значениями, представленными на рисун- ке 152, а затем нажмите кнопку «OК».
Рисунок 152 — Заполнение редактора коллекции строк для списка
Настроим таблицу для отображения данных, удалив из неё поля с кодами. Выделите таблицу на форме и отобразите её меню действий, щелкнув левой кнопкой мыши по кнопке , расположенной в верхнем правом углу таблицы. В меню действий выберите пункт “Edit columns...” («Правка столбцов») (рис. 153).
Рисунок 153 — Меню действий табличной формы
Появится окно настройки свойств полей таблицы “Edit Columns” («Прав-
ка столбцов») (рис. 154).
Рисунок 154 — Окно «Правка столбцов»
В окне “Edit Columns” («Правка столбцов») из списка полей удалите поля
«Код студента» и «Код специальности», выделив их и нажав кнопку “Remove” («Удалить»). Список полей примет вид, показанный на рисунке 154. Для закры- тия окна редактирования полей и сохранения изменений нажмите кнопку «OК». Настроим заполнение выпадающего списка именами студентов из табли-
цы студенты. Отобразите меню действий выпадающего списка. Включите оп- цию “Use Data Bound Items” («Использовать элементы, привязанные к дан- ным»). Установите параметр “Data Source” («Источник данных») равным “Other Data Sources / Project Data Sources / StudentsDataSet / Студенты” («Другие ис- точники данных / Источники данных проекта / StudentsDataSet / Студенты»), а параметр “Display Member” («Отобразить члена») равным «Фамилия». Осталь- ные параметры оставьте без изменений (рис. 155).
Рисунок 155 — Настройки выпадающего списка
Закройте окно действий выпадающего списка. На панели невидимых объ- ектов появится дополнительный объект связи «СтудентыBindingSource1», предназначенный для заполнения выпадающего списка (рис. 156).
Рисунок 156 — Панель невидимых объектов
После настройки всех вышеперечисленных свойств объектов новая форма примет вид (рис. 157).
Рисунок 157 — Внешний вид табличной формы «Студенты»
На этом мы заканчиваем настройку свойств объектов и переходим к написанию кода обработчиков событий объектов.
Работу с кодом начнём с написания кода для разблокирования кнопки
«Сортировать» при выборе пункта списка (ListBox1). Для создания процедуры события дважды щёлкните левой кнопкой мыши по списку. Появится процеду- ра обработки события, происходящего при выборе пункта списка (ListBox1_SelectedIndexChanged). В процедуре наберите команду разблокиров- ки кнопки «Сортировать» (Button1): Button1.Enabled = True (рис. 158).
Рисунок 158 — Программный код для разблокировки кнопки «Сортировать»
при выборе элемента из списка
Теперь перейдем к созданию кода, сортирующего нашу таблицу в зави- симости от выбранного поля и порядка сортировки, при нажатии кнопки «Сор- тировать». Дважды щёлкните левой кнопкой мыши по кнопке «Сортировать». Появится процедура Button1_Click, выполняемая при щелчке левой кнопкой мыши по кнопке. В процедуре наберите код, представленный на рисунке 159.
Рисунок 159 — Программный код для сортировки таблицы
Рассмотрим код более подробно:
Команда Dim Col As System.Windows.Forms.DataGridViewColumn создаёт переменную Col для хранения имени выбранного столбца таблицы;
Затем следует блок Select Case ... End Select, присваивающий в перемен- ную Col имя выбранного столбца таблицы в зависимости от номера вы- бранного пункта списка (ListBox1.SelectedIndex). Если выбран первый пункт списка, то в переменную Col записывается столбец DataGridViewTextBoxColumn2, если второй, то — DataGridViewTextBoxColumn3 и т.д. Хотелось бы отметить тот факт, что нумерация пунктов списка начинается с нуля, а нумерация столбцов с единицы. Первый столбец «Фамилия» носит имя DataGridViewTextBoxColumn2, так как имя DataGridViewTextBoxColumn1 имеет столбец заголовков строк;
Блок If ... End If выполняет следующую операцию: если включён пере- ключатель «Сортировка по возрастанию» (RadioButton1), то отсортиро- вать таблицу по полю, заданному в переменной Col, по возрастанию (СтудентыDataGridView.Sort (Col, System.ComponentModel.ListSort Direction. Ascending)), иначе — по убыванию (СтудентыData- GridView.Sort (Col, System.ComponentModel.ListSort Direction.Descending)).
Рассмотрим код обработчика события нажатия кнопки «Фильтровать» (Button2). Дважды щёлкните по кнопке «Фильтровать» и в процедуре обработ- ки события Button2_Click наберите код (рис. 160): СтудентыBindingSource.Filter = "Фамилия =' " & ComboBox1.Text & " ' "
Рисунок 160 — Программный код для фильтрации данных по фамилии
Достарыңызбен бөлісу: |