Как сохранить стиль ячейки DataGridView в базе данных
Я работаю с DataGridView в vb.net и пытаюсь сохранить изменения, сделанные в DataGridView, в моей базе данных Access. Проблема в том, что пользователь может изменить отдельные цвета фона ячейки, выбрав любые ячейки, которые он хочет, а затем изменив цвет. Я не могу понять, как сохранить цвет фона отдельной ячейки, чтобы при повторном запуске программы цвета отображались. Когда пользователь нажимает сохранить, цветовой формат стирается. Я также не думаю, что смогу сделать это на стороне доступа, добавив цветной столбец, поскольку в каждой строке и столбце будет использоваться несколько цветов. Есть ли способ сохранить форматирование стиля ячейки? Вот код... Это кнопка сохранения
Private Sub DsfToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles DsfToolStripMenuItem.Click
BaggersTableAdapter.Update(RentalsDataSet.Tables(0))
RentalsDataSet.Tables(0).AcceptChanges()
End Sub
И кнопка, которую нажимают, чтобы изменить цвет выбранных ячеек.
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
For i As Integer = 0 To DataGridView1.SelectedCells.Count - 1
'Dim a As String = (DataGridView1.SelectedCells(i).RowIndex.ToString)
Dim colIndex As Integer = DataGridView1.SelectedCells(i).ColumnIndex
Dim rowIndex As Integer = DataGridView1.SelectedCells(i).RowIndex
DataGridView1.Item(colIndex, rowIndex).Style.BackColor = Color.LightGreen
Next
End Sub
1 ответ
Я бы создал таблицы для сохранения цветов дизайна. Что-то вроде grid_style_header (header_id, grid_id, user_id) grid_style_cells (идентификатор, header_id, строка, столбец, цвет)...
Проблемы могут возникнуть, если вы разрешите фильтрацию сетки. Если это произойдет, ваши столбцы, вероятно, останутся, но строки могут не сработать или они могут двигаться вверх или вниз.
Лучшее решение, если вы можете реализовать его: grid_style_cells (id, header_id, row_guid (независимо от первичного ключа в вашем идентификаторе базы данных), column_name, color)
Это делает идентификатор строки абсолютным, поэтому у вас нет проблем с фильтрацией. Имена столбцов также избавляют от проблемы перезаписи столбцов.
Я не знаю ни одного встроенного решения для этого.