Dim col as system windows forms datagridviewcolumn

Нужно перевести код (сортировка) с VB на C# (среда VS 2010) C# Решение и ответ на вопрос 551455

VinnyPyx

0 / 0 / 0

Регистрация: 10.02.2012

Сообщений: 41

1

18.04.2012, 00:54. Показов 2043. Ответов 1

Метки нет (Все метки)


VB.NET
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
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim Col As System.Windows.Forms.DataGridViewColumn
        Select Case ListBox1.SelectedIndex
            Case 0
                Col = DataGridViewTextBoxColumn2
            Case 1
                Col = DataGridViewTextBoxColumn3
            Case 2
                Col = DataGridViewTextBoxColumn4
            Case 3
                Col = DataGridViewTextBoxColumn5
            Case 4
                Col = DataGridViewTextBoxColumn6
            Case 5
                Col = DataGridViewTextBoxColumn7
            Case 6
                Col = DataGridViewTextBoxColumn8
            Case 7
                Col = DataGridViewTextBoxColumn9
        End Select
        If RadioButton1.Checked Then
            ПациентыDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Ascending)
        Else
            ПациентыDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Descending)
        End If
    End Sub

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



turbanoff

Эксперт Java

4087 / 3821 / 745

Регистрация: 18.05.2010

Сообщений: 9,331

Записей в блоге: 11

18.04.2012, 07:07

2

Лучший ответ Сообщение было отмечено VinnyPyx как решение

Решение

http://converter.telerik.com/

C#
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
27
28
29
30
31
32
33
34
35
36
private void  // ERROR: Handles clauses are not supported in C#
Button5_Click(System.Object sender, System.EventArgs e)
{
    System.Windows.Forms.DataGridViewColumn Col = default(System.Windows.Forms.DataGridViewColumn);
    switch (ListBox1.SelectedIndex) {
        case 0:
            Col = DataGridViewTextBoxColumn2;
            break;
        case 1:
            Col = DataGridViewTextBoxColumn3;
            break;
        case 2:
            Col = DataGridViewTextBoxColumn4;
            break;
        case 3:
            Col = DataGridViewTextBoxColumn5;
            break;
        case 4:
            Col = DataGridViewTextBoxColumn6;
            break;
        case 5:
            Col = DataGridViewTextBoxColumn7;
            break;
        case 6:
            Col = DataGridViewTextBoxColumn8;
            break;
        case 7:
            Col = DataGridViewTextBoxColumn9;
            break;
    }
    if (RadioButton1.Checked) {
        ПациентыDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Ascending);
    } else {
        ПациентыDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Descending);
    }
}



2



Работу с кодом начнем с написания кода для разблокирования кнопки «Сортировать», при выборе пункта списка ( 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).

Код скринами. Ты гениален.

Вот код

    Private Sub Button4_Click(sender As Object, e As Object) Handles Button4.Click

        For i = 0 To RabotnikiDataGridView.ColumnCount — 1

            For j = 0 To RabotnikiDataGridView.RowCount — 1

                RabotnikiDataGridView.Item(i, j).Style.BackColor = Color.White

                RabotnikiDataGridView.Item(i, j).Style.ForeColor = Color.Black

            Next j

        Next i

        For i = 0 To RabotnikiDataGridView.ColumnCount — 1

            For j = 0 To RabotnikiDataGridView.RowCount — 1

                If InStr(RabotnikiDataGridView.Item(i, j).Value.TextBox1.Text) Then

                    RabotnikiDataGridView.Item(i, j).Style.BackColor = Color.AliceBlue

                    RabotnikiDataGridView.Item(i, j).Style.ForeColor = Color.Blue

                End If

            Next j

        Next i

    End Sub

Это я хотел сделать кнопку «Найти»

А это кнопка «Сортировать»

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim Col As System.Windows.Forms.DataGridViewColumn

        Select Case ListBox1.SelectedIndex

            Case 0

                Col = DataGridViewTextBoxColumn2

            Case 1

                Col = DataGridViewTextBoxColumn3

            Case 2

                Col = DataGridViewTextBoxColumn4

            Case 3

                Col = DataGridViewTextBoxColumn5

            Case 4

                Col = DataGridViewTextBoxColumn6

            Case 5

                Col = DataGridViewTextBoxColumn7

        End Select

        If RadioButton1.Checked Then

            RabotnikiDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Ascending)

        Else

            RabotnikiDataGridView.Sort(Col, System.ComponentModel.ListSortDirection.Descending)

        End If

    End Sub

P.S. Ошибки скопировать или скринов хватит?)

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

Цель: научиться создавать табличные формы

Перейдём теперь к созданию табличных форм для отображения данных. В данной главе также затрагиваются вопросы фильтрации и сортировки данных, а также реализуется поиск информации в таблице.

Рассмотрим создание табличной формы на примере формы, отображающей таблицу «Студенты». Добавьте в проект новую форму и на неё поместите следующие объекты:

четыре надписи (Label),

пять кнопок (Button),

выпадающий список (ComboBox),

текстовое поле ввода (TextBox),

группирующую рамку (GroupBox),

список (ListBox),

два переключателя (RadioButton). Расположите объекты как показано на рисунке 11.1.

Рис.11.1

Замечание: Для создания объекта группирующая рамка используется кнопка ### на панели объектов (Toolbox), а для создания переключателя – кнопка ###.

Добавим на форму таблицу для отображения данных (DataGridView) из таблицы «Студенты». Для этого на панели «Источники данных» (Data Sources), нажмите кнопку , расположенную справа от таблицы «Студенты». В появившемся списке объектов для отображения всей таблицы выберите «DataGridView» (Рис.11.2).

Рис.11.2

Перетащите таблицу «Студенты» из панели «Источники данных» на форму. Форма примет следующий вид (Рис.11.3):

Рис.11.3

Обратите внимание на то, что на форме появилась таблица для отображения данных, подключённая к таблице «Студенты». Также появились объекты связи и панель навигации (Рис.11.4).

Рис.11.4

Теперь перейдём к настройке свойств объектов. Начнём с настройки свойств формы. Задайте свойства формы следующим образом:

FormBorderStyle (Стиль границы формы): Fixed3D;

MaximizeBox (Кнопка развёртывания формы во весь экран): False;

MinimizeBox (Кнопка свёртывания формы на панель задач): False;

Text (Текст надписи в заголовке формы): Таблица «Студенты» (Табличный вид).

Задайте свойства надписей (Label1, Label2, Label3 и Label4) как:

AutoSize (Авторазмер): False;

Text (Текст надписи): «Таблица «Студенты» (Табличный вид)», «Поле для сортировки», «ФИО:» и «Критерий» (Соответственно для Label1, Label2, Label3 и Label4).

Для надписи Label1 задайте:

Font (Шрифт): Microsoft Sans Serif, размер 14;

ForeColor (Цвет текста): Тёмно синий;

TextAlign (Выравнивание текста): MiddleCenter.

Задайте надписи на кнопках как: «Сортировать», «Фильтровать», «Показать все», «Найти» и «Закрыть» (Соответственно для кнопок Button1, Button2, Button3, Button4 и Button5). Для того чтобы нельзя было произвести сортировку не выбрав поля изначально заблокируем кнопку «Сортировать» (Button1).

Угруппирующей рамки задайте заголовок (Свойство Text) равным «Сортировка».

Упереключателей (Объекты RadioButton1 и RadioButton2) задайте надписи как «Сортировка по возрастанию» и «Сортировка по убыванию», а у переключателя «Сортировка по возрастанию» (RadioButton1) задайте свойство Checked (Включён) равное

True (Истина).

Заполните список (ListBox1) значениями, представленными на рисунке 11.5, а затем нажмите кнопку «Ok».

Рис.11.5

Настроим таблицу для отображения данных, удалив из неё поля с кодами. Выделите таблицу на форме и отобразите её меню действий, щёлкнув ЛКМ по кнопке , расположенной в верхнем правом углу таблицы. В меню действий выберите пункт «Edit columns…» (Рис.11.6).

Рис.11.6

Появится окно настройки свойств полей таблицы «Edit Columns» (Рис.11.7).

Рис.11.7

В окне «Edit Columns» из списка полей удалите поля «Код студента» и «Код специальности», выделив их и нажав кнопку «Remove» (Удалить). Список полей примет вид показанный на рисунке 11.7. Для закрытия окна редактирования полей, и сохранения изменений нажмите кнопку «Ok».

Настроим заполнение выпадающего списка именами студентов из таблицы студенты. Отобразите меню действий выпадающего списка. Включите опцию «Use Data Bound Items». Установите параметр «Data Source» равным «Other Data SourcesProject Data SourcesStudentsDataSetСтуденты», а параметр «Display Member» равным «ФИО».

Остальные параметры оставьте без изменений (Рис.11.8).

Рис.11.8

Закройте окно действий выпадающего списка. На панели невидимых объектов появится дополнительный объект связи «СтудентыBindingSource1», предназначенный для заполнения выпадающего списка (Рис.11.9).

Рис.11.9

После настройки всех вышеперечисленных свойств объектов новая форма примет вид (Рис.11.10):

Рис.11.10

На этом мы заканчиваем настройку свойств объектов и переходим к написанию кода обработчиков событий объектов.

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

Рис.11.11

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

Рис.11.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 & «‘» (Рис.11.13).

Рис.11.13

Замечание: У объекта СтудентыBindingSource имеется текстовое свойство Filter (Рис.11.13), которое определяет условие фильтрации. Условие фильтрации имеет синтаксис: “<Имя поля><Оператор>’<Значение>’”.В нашем случае значение поя «ФИО» приравнивается к значению, выбранному в выпадающем списке

(ComboBox1.Text) (Рис.11.13).

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

(Рис.11.14).

Рис.11.14

Заметим, что если присвоить свойству «Filter» значение пустой строки (“”), то его действие будет отменено (Рис.11.14).

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

Рис.11.15

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

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

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

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

Рис.11.16

В заключение создадим кнопку на ленточной форме, отображающей таблицу «Студенты», для отображения соответствующей табличной формы. Откройте ленточную форму для таблицы «Студенты» (Form4) и поместите на неё новую кнопку, как это показано на рисунке 11.17.

Рис.11.17

Задайте надпись у новой кнопки (свойство Text), как «Таблица». Форма примет следующий вид (Рис.11.18):

Рис.11.18

Подключим к кнопке «Таблица» созданную ранее табличную форму (Form6). Для этого дважды щёлкните ЛКМ по кнопке «Таблица» и в появившейся процедуре

«Button8_Click» наберите команду «Form6.Show» (Рис.11.19).

Рис.11.19

Теперь проверим работоспособность созданной табличной формы. Запустите проект и на главной кнопочной форме нажмите кнопку «Таблица «Студенты»». На появившейся ленточной форме, отображающей таблицу «Студенты» нажмите кнопку «Таблица». Появится новая табличная форма (Рис.11.20).

Рис.11.20

Проверьте, как работает поиск, фильтрация и сортировка записей в таблице, нажимая на соответствующие кнопки. После проверки работы формы для возвращения в среду разработки просто закройте все формы.

Хотелось бы отметить тот факт, что после проведения всех вышеописанных действий панель обозревателя проекта (Solution Explorer) примет вид (Рис.11.21):

Рис.11.21

На этом мы заканчиваем работу с формами для работы с данными и переходим к отчётам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Diablo 3 зависает на updating setup files windows 10
  • Diablo 3 updating setup files что делать windows 10 на пиратке
  • Digma smart home для windows скачать
  • Digma idsd10 3g драйвер windows 10
  • Digma eve 8800 3g windows 10