bellatriks Ответов: 1

Контроль два столбца флажок элементом управления datagridview


Привет,

У меня есть datagridview с 11 столбцами. 6. и 7. столбцы являются столбцом флажка. если 6. столбец установлен, он должен быть снят автоматически при выборе 7.столбец (установлен) в текущей строке.

Я много чего пробовал, но у меня ничего не получается.

Что я уже пробовал:

Private Sub dgTestler_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgTestler.CellContentClick

        If e.RowIndex >= 0 Then
            If dgTestler.Rows(e.RowIndex).Cells(6).Selected = True Then
                If dgTestler.Rows(e.RowIndex).Cells(6).Value = False And dgTestler.Rows(e.RowIndex).Cells(7).Value = False Then
                    dgTestler.Rows(e.RowIndex).Cells(6).Selected = True
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = dgTestler.Rows(e.RowIndex).Cells(8).Value
                    GenelToplam = GenelToplam + dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = dgTestler.Rows(e.RowIndex).Cells(8).Value * 100
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = 1
                    TextBox1.Text = GenelToplam.ToString()
                    Exit Sub

                ElseIf dgTestler.Rows(e.RowIndex).Cells(6).Value = True And dgTestler.Rows(e.RowIndex).Cells(7).Value = False Then
                    dgTestler.Rows(e.RowIndex).Cells(6).Selected = False
                    GenelToplam = GenelToplam - dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = ""
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = ""
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = ""
                    TextBox1.Text = GenelToplam.ToString()
                    Exit Sub
                ElseIf dgTestler.Rows(e.RowIndex).Cells(6).Value = True And dgTestler.Rows(e.RowIndex).Cells(7).Value = True Then
                    dgTestler.Rows(e.RowIndex).Cells(6).Selected = True
                    dgTestler.Rows(e.RowIndex).Cells(7).Selected = False
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = dgTestler.Rows(e.RowIndex).Cells(8).Value
                    GenelToplam = GenelToplam + dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = dgTestler.Rows(e.RowIndex).Cells(8).Value * 100
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = 1
                    TextBox1.Text = GenelToplam.ToString()
                    Exit Sub
                End If

            ElseIf dgTestler.Rows(e.RowIndex).Cells(7).Selected = True Then
                If dgTestler.Rows(e.RowIndex).Cells(7).Value = False And dgTestler.Rows(e.RowIndex).Cells(6).Value = False Then
                    dgTestler.Rows(e.RowIndex).Cells(7).Selected = True
                    'GenelToplam = GenelToplam - dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = 0
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = 0
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = 1
                    'TextBox1.Text = GenelToplam.ToString()
                    Exit Sub
                ElseIf dgTestler.Rows(e.RowIndex).Cells(7).Value = True And dgTestler.Rows(e.RowIndex).Cells(6).Value = False Then
                    dgTestler.Rows(e.RowIndex).Cells(7).Selected = False
                    'GenelToplam = GenelToplam - dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = ""
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = ""
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = ""
                    'TextBox1.Text = GenelToplam.ToString()
                    Exit Sub
                ElseIf dgTestler.Rows(e.RowIndex).Cells(7).Value = True And dgTestler.Rows(e.RowIndex).Cells(6).Value = True Then
                    dgTestler.Rows(e.RowIndex).Cells(6).Selected = False
                    dgTestler.Rows(e.RowIndex).Cells(7).Selected = True
                    GenelToplam = GenelToplam - dgTestler.Rows(e.RowIndex).Cells(9).Value
                    dgTestler.Rows(e.RowIndex).Cells(9).Value = 0
                    dgTestler.Rows(e.RowIndex).Cells(10).Value = 0
                    dgTestler.Rows(e.RowIndex).Cells(11).Value = 1
                    TextBox1.Text = GenelToplam.ToString()
                    Exit Sub
                End If

            End If

        End If
End Sub

Maciej Los

Связан ли DataGridView с базой данных?

bellatriks

Да, DataGridView-это получение данных из базы данных SQL.

Maciej Los

ОК. Что вы используете: DataTable или BindingSource?

bellatriks

Никто. Я использую DataReader.


Если rdr. имеет значение, то
В то время как rdr.читать()
Дим р Как integer = dgTestler.Строк.Добавить()
dgTestler.Rows.Элемент(Р).Клеток(0).Значение = РДР(0)
dgTestler.Rows.Элемент(Р).Клетки(1).Значение = ОР(1)
dgTestler.Rows.Элемент(Р).Клетки(2).Значение = РДР(2)
dgTestler.Rows.Элемент(Р).Клетки(3).Значение = РДР(3)
dgTestler.Rows.Элемент(Р).Клетки(4).Значение = РДР(4)
dgTestler.Rows.Элемент(Р).Клетки(5).Значение = ор(5)
dgTestler.Rows.Элемент (r). ячейки (6). значение = False
dgTestler.Rows.Элемент (r). ячейки (7). значение = False
dgTestler.Rows.Элемент (r). ячейки (8). значение = rdr(6)
Агирликтоплами = Агирликтоплами + РДР(6)
'Bulgular.rtxtTitle.Текст = rdr(5).Метод toString()
Конец Пока
Конец, Если