Опубликован: 22.11.2010 | Уровень: для всех | Доступ: платный
Самостоятельная работа 11:

Создание табличных форм

< Лекция 11 || Самостоятельная работа 11: 123 || Лекция 12 >

Работу с кодом начнем с написания кода для разблокирования кнопки "Сортировать", при выборе пункта списка ( ListBox1 ). Для создания процедуры события дважды щелкните ЛКМ по списку. Появится процедура обработки события, происходящего при выборе пункта списка ( ListBox1_SelectedIndexChanged ). В процедуре наберите команду разблокировки кнопки "Сортировать" (Button1): Button1.Enabled = True ( рис. 22.11).

Теперь перейдем к созданию кода сортирующего нашу таблицу в зависимости от выбранного поля и порядка сортировки при нажатии кнопки "Сортировать". Дважды щелкните ЛКМ по кнопке "Сортировать". Появится процедура "Button1_Click", выполняемая при щелчке ЛКМ по кнопке. В процедуре наберите код, представленный на рис. 22.12.

Рассмотрим код более подробно:

  • Команда 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.ListSortDirection. Ascending) ), иначе по убыванию ( СтудентыDataGridView.Sort (Col, System. ComponentModel.ListSortDirection. Descending) ).

Рассмотрим код обработчика события нажатия кнопки "Фильтровать" (Button2). Дважды щелкните по кнопке "Фильтровать" и в процедуре обработки события "Button2_Click" наберите код: СтудентыBindingSource.Filter = "ФИО='" & ComboBox1.Text & "'" ( рис. 22.13).

Замечание: У объекта СтудентыBindingSource имеется текстовое свойство Filter ( рис. 22.13), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис: "<Имя поля><Оператор>'<Значение>'".В нашем случае значение поля "ФИО" приравнивается к значению, выбранному в выпадающем списке ( ComboBox1.Text ) ( рис. 22.13).

Теперь перейдем к кнопке "Показать все", отменяющей фильтрацию записей. Дважды щелкните по вышеперечисленной кнопке. Появится процедура Button3_Click. В появившейся процедуре наберите команду СтудентыBindingSource.Filter = "" ( рис. 22.14).

Заметим, что если присвоить свойству "Filter" значение пустой строки ( "" ), то его действие будет отменено ( рис. 22.14).

Далее рассмотрим реализацию поиска информации в таблице. Дважды щелкните по кнопке "Найти". В появившейся процедуре обработки нажатия кнопки "Button4_Click" наберите следующий код ( рис. 22.15).

Рассмотрим более подробно код вышеприведенной процедуры. Данная процедура состоит из двух частей:

  • Первый блок For i=0…..Next i. перебирает все ячейки таблицы и устанавливает в них белый цвет фона и черный цвет текста. То есть, отменяет результаты предыдущего поиска;
  • Второй блок For i=0…..Next i. перебирает все ячейки таблицы и если они содержат текст, введенный в поле ввода ( TextBox1 ), то устанавливает в них голубой цвет фона и синий цвет текста, чем выделяет искомые ячейки.

Наконец рассмотрим код для кнопки "Закрыть". Дважды щелкните ЛКМ по этой кнопке и в появившейся процедуре "Button5_Click" наберите команду "Me.Close()", закрывающую выше рассматриваемую форму ( рис. 22.16).

< Лекция 11 || Самостоятельная работа 11: 123 || Лекция 12 >
Ринат Гатауллин
Ринат Гатауллин

Здравствуйте. Интересует возможность получения диплома( https://intuit.ru/sites/default/files/diploma/examples/P/955/Nekommerch-2-1-PRF-example.jpg ). Курс пройден. Сертификат не подходит. В сертификате ошибка, указано по датам время прохождения около 14 дней, хотя написано 576 часов.

Вячеслав Кузнецов
Вячеслав Кузнецов

Здравствуйте.

Как оплатить курс?

Ирэна Касьяненко
Ирэна Касьяненко
Россия, Северо-Кавказский Федеральный университет
Андрей Заярный
Андрей Заярный
Россия, Москва, МАТИ-РГТУ им. Циолковского, 2002