文本(标签)未更新 (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