我正在vb.net中使用DataGridView,并试图将在DataGridView中所做的更改保存到我的Access数据库中。问题是,用户可以通过选择他们想要的任何单元格,然后更改颜色来更改单个单元格的背景颜色。我不知道如何保存单个单元格的背景颜色,这样当程序再次运行时,颜色就会显示出来。当用户单击保存时,颜色格式将被擦除。我也不认为我可以通过添加一个颜色列来在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
我会创建用于保存设计颜色的表。类似于grid_style_header(header_id、grid_id、user_id)grid_style_cells(id、header_id、行、列、颜色)。。。
如果允许对网格进行筛选,则可能会出现问题。如果发生这种情况,列可能会保留,但行可能不会,或者它们可能会向上或向下移动。
更好的解决方案,如果你能实现的话:grid-style_cells(id,header_id,row_guid(数据库id中的任何主键),column_name,color)
这使得行标识符是绝对的,因此您在筛选时不会有任何问题。列名也消除了列重新排序的问题。
我不知道有任何内置的解决方案。