Taha Ahmed Ответов: 1

Как я могу изменить задний цвет активной ячейки строки и столбца


hi I'm new in vb and I want to change row and column backcolor for active cell but my code not work well 
:


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

Dim col_index As Byte
Dim row_index As Byte
Private Sub dgv1_CellEnter_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv1.CellEnter
    Try
        If dgv1.CurrentCell.ColumnIndex > 0 Then
            TextBox1.Text = dgv1.CurrentRow.Cells.Item("stu_sery").Value
            index = dgv1.CurrentRow.Index
            ComboBox1.SelectedIndex = dgv1.CurrentCell.ColumnIndex - 1
            dgv1.Columns(dgv1.CurrentCell.ColumnIndex).DefaultCellStyle.BackColor = Color.Aqua
            dgv1.Rows(dgv1.CurrentCell.RowIndex).DefaultCellStyle.BackColor = Color.Aqua
            dgv1.Columns(col_index).DefaultCellStyle.BackColor= Color.White
            dgv1.Rows(row_index).DefaultCellStyle.BackColor = Color.White

            row_index = dgv1.CurrentCell.RowIndex
            col_index = dgv1.CurrentCell.ColumnIndex
        End If
    Catch ex As Exception

    End Try
End Sub

Ram Nunna

В чем заключается ошибка, которую вы получаете?

Taha Ahmed

Когда я изменить ячейку предыдущей строки и столбца ячейки цвет фона будет белым и мой новый столбец активной ячейки

1 Ответов

Рейтинг:
9

an0ther1

Если вы измените цвет фона ячейки в обработчике событий CellEnter, то событие будет запущено при входе в ячейку. Это будет сохраняться до тех пор, пока вы не перезагрузите сетку или не измените цвет, будет работать одно из следующих действий;
а) в вашем обработчике событий CellEnter выполните цикл по всем строкам и установите цвет по умолчанию, за исключением текущей строки
Плохой способ - ненужная петля
б) добавьте обработчик событий CellLeave. Установите цвет ячейки обратно в значение по умолчанию в этом обработчике событий
правильный путь

Обратитесь к следующей статье MSDN пример кода; Практическое руководство.Событие CellEnter (System.Окна.Формы)[^]

с уважением