Специальное форматирование для DataGridView - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь воспроизвести аналогичную программу с точки зрения форматирования DataGridView.
Вот как я хочу, чтобы она выглядела:

Image of an attendance sheet

Я пыталсяthis:

Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
    ' Initial Styling of Cell Selection
    For i As Integer = 0 To DataGridView1.Rows.Count - 1
        For j As Integer = 0 To DataGridView1.Columns.Count - 1
            DataGridView1.Rows(i).Cells(j).Style.BackColor = Color.FromKnownColor(KnownColor.Control)
        Next
    Next
    Dim current As Integer = 0
    current = DataGridView1.SelectedCells(0).ColumnIndex
    Dim target As Integer = current
    Dim looping As Boolean = True
    While looping
        If target = 0 Then
            looping = False
        End If
        DataGridView1.SelectedRows(0).Cells(target).Style.BackColor = Color.Orange
        target = target - 1
    End While
    current = DataGridView1.SelectedRows(0).Index
    target = current
    Dim column As Integer = DataGridView1.SelectedCells(0).ColumnIndex
    looping = True
    While looping
        If target = 0 Then
            looping = False
        End If
        DataGridView1.SelectedRows(target).Cells(column).Style.BackColor = Color.Orange
    End While
End Sub

Я также установил режим выбора на CellSelect и изменил этот цвет на светло-синий, как на этом рисунке. Изображение

Возможно, я где-то испортил свой код, но у моего VS есть ошибка, из-за которой он останавливается и прерывает работу приложения, но это не покажет мне исключение.
У кого-нибудь есть идеи, что я могу сделать отсюда, чтобы исправить это?

1 Ответ

0 голосов
/ 24 февраля 2019

Lokks хорошо, вы пропустили цель = цель - 1 в цикле строк

    target = current
    Dim column As Integer = DataGridView1.SelectedCells(0).ColumnIndex
    looping = True
    While looping
        If target = 0 Then
            looping = False
        End If
        DataGridView1.SelectedRows(target).Cells(column).Style.BackColor =        Color.Orange
        target -= 1
    End While
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...