Vb.net 再次打开同一表单时,DataGridView行颜色不会更改
我正在尝试创建一个简单的清单系统,它是从数据绑定的DataGridView显示的。如果某个项目小于所需的最小限制,我想更改特定项目的行颜色 当我使用DatagridView打开表单时,如果每个项目的行颜色小于最小值,则该行颜色将成功更改为红色。但是,当我关闭窗体并再次打开它时,行的颜色没有改变 如果库存低于检查函数是否工作的要求,并且即使我打开和关闭表单,但没有更改受影响行的行颜色,它也会更改单元格的文本,那么我会尝试替换列的文本。 我已尝试手动将行加载到DataGridView中,而不是使用Vb.net 再次打开同一表单时,DataGridView行颜色不会更改,vb.net,datagridview,Vb.net,Datagridview,我正在尝试创建一个简单的清单系统,它是从数据绑定的DataGridView显示的。如果某个项目小于所需的最小限制,我想更改特定项目的行颜色 当我使用DatagridView打开表单时,如果每个项目的行颜色小于最小值,则该行颜色将成功更改为红色。但是,当我关闭窗体并再次打开它时,行的颜色没有改变 如果库存低于检查函数是否工作的要求,并且即使我打开和关闭表单,但没有更改受影响行的行颜色,它也会更改单元格的文本,那么我会尝试替换列的文本。 我已尝试手动将行加载到DataGridView中,而不是使用S
SqlDataAdapter
还有DataGridView,即使我再次打开和关闭表单,它也可以正常工作
但是我想利用SqlDataAdapter.Update()
函数,当单击Update按钮时,在DataGridView中创建、更新和删除项目。
这是我的密码:
因此,我的问题是,为什么DataGridView自定义行的颜色即使在再次打开同一表单时也不会更改
Dim dataAdapter As SqlDataAdapter
Dim commandBuilder As SqlCommandBuilder
Dim dataSet As DataSet
Private Sub Inventory_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Dim query As String = "SELECT * FROM Inventory"
dataSet = New DataSet
dataAdapter = New SqlDataAdapter(query, SQLCon)
dataAdapter.Fill(dataSet)
DGVInventory.DataSource = dataSet.Tables(0)
'Change the row color of insufficient item quantity
For row As Integer = 0 To DGVInventory.Rows.Count - 1
If DGVInventory.Rows(row).Cells(2).Value < DGVInventory.Rows(row).Cells(3).Value Then
DGVInventory.Rows(row).DefaultCellStyle.BackColor = Color.Red
DGVInventory.Rows(row).DefaultCellStyle.ForeColor = Color.White
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Inventory_Load() Function Error")
End Try
End Sub
Private Sub BtnSaveChanges_Click(sender As Object, e As EventArgs) Handles BtnSaveChanges.Click
Try
commandBuilder = New SqlCommandBuilder(dataAdapter)
dataAdapter.Update(dataSet, "Inventory")
MessageBox.Show("Database has been updated.", "Update Successful!")
Catch ex As Exception
MessageBox.Show(ex.Message, "BtnSaveChanges_Click() Function Error")
End Try
End Sub
Dim dataAdapter作为SqlDataAdapter
将commandBuilder设置为SqlCommandBuilder
将数据集作为数据集
私有子目录加载(发送者作为对象,e作为事件参数)处理MyBase.Load
尝试
Dim查询为String=“从库存中选择*
数据集=新数据集
dataAdapter=新的SqlDataAdapter(查询,SQLCon)
dataAdapter.Fill(数据集)
DGVInventory.DataSource=dataSet.Tables(0)
'更改物料数量不足的行颜色
对于作为整数的行=0到DGVInventory.Rows.Count-1
如果dgVintory.Rows(row).Cells(2).Value
在关闭表单时检查,是否已处理完所有内容?检查Inventory_Load,再次打开表单时是否有效?每次打开表单时,DataGridView都会显示数据库中的所有数据,但在第二次打开表单时,行的颜色不会改变。我不知道它是否处理了所有事情,因为我还没有用于FormClosing的事件处理程序。请尝试我。关闭时处理我想第二个和下一个form openOptions Strict On
;)没有运行Inventory_Load事件