文本(标签)未更新 (vb.net)
Text (label) isn't being updated (vb.net)
我正在更新大型数据库中的 1 个字段。
因为我想看看进度有多远,所以我想在每次更新记录时更新我的标签。然而,这是行不通的:他只在最后更新它,当它完成时。
请注意,进度条和更新工作正常,我没有收到任何错误消息。有什么想法吗?
Private Sub btnUpdateHeight_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdateHeight.Click
dt = loadform()
ProgressBarTSLabels.Minimum = 0
Dim qty As Integer = 0
ProgressBarTSLabels.Value = 0
ProgressBarTSLabels.Maximum = dt.Rows.Count
Dim db As New DataClasses1DataContext
For Each Me.dr In dt.Rows
If dr.Item(5).ToString.Trim <> "" Then
Dim sqlupdate As tblLabel = (From expr In db.tblLabels Where expr.LabelID = dr.Item(0).ToString).First
With sqlupdate
.Height = If(dr.Item(5).ToString = "max", "999", dr.Item(5).ToString)
db.SubmitChanges()
End With
End If
ProgressBarTSLabels.Value += 1
qty += 1
lblQty.Text = qty & "/" & dt.Rows.Count
Next
End Sub
只需在设置文本后调用Label.Refresh
方法,这将强制重绘标签。您也可以在进度条上调用Refresh
方法,这样进度条就可以正常运行了。
...
ProgressBarTSLabels.Value += 1
qty += 1
lblQty.Text = qty & "/" & dt.Rows.Count
lblQty.Refresh '<-- here
ProgressBarTSLabels.Refresh '<-- and here
Next
我正在更新大型数据库中的 1 个字段。 因为我想看看进度有多远,所以我想在每次更新记录时更新我的标签。然而,这是行不通的:他只在最后更新它,当它完成时。
请注意,进度条和更新工作正常,我没有收到任何错误消息。有什么想法吗?
Private Sub btnUpdateHeight_Click(sender As System.Object, e As System.EventArgs) Handles btnUpdateHeight.Click
dt = loadform()
ProgressBarTSLabels.Minimum = 0
Dim qty As Integer = 0
ProgressBarTSLabels.Value = 0
ProgressBarTSLabels.Maximum = dt.Rows.Count
Dim db As New DataClasses1DataContext
For Each Me.dr In dt.Rows
If dr.Item(5).ToString.Trim <> "" Then
Dim sqlupdate As tblLabel = (From expr In db.tblLabels Where expr.LabelID = dr.Item(0).ToString).First
With sqlupdate
.Height = If(dr.Item(5).ToString = "max", "999", dr.Item(5).ToString)
db.SubmitChanges()
End With
End If
ProgressBarTSLabels.Value += 1
qty += 1
lblQty.Text = qty & "/" & dt.Rows.Count
Next
End Sub
只需在设置文本后调用Label.Refresh
方法,这将强制重绘标签。您也可以在进度条上调用Refresh
方法,这样进度条就可以正常运行了。
...
ProgressBarTSLabels.Value += 1
qty += 1
lblQty.Text = qty & "/" & dt.Rows.Count
lblQty.Refresh '<-- here
ProgressBarTSLabels.Refresh '<-- and here
Next