效果:根据选择工时(延时)和数量(次数)自动将B表的数据复制到C表。
问题:由于通过System.Threading.Thread.Sleep来实现延时功能,使运行过程如同死机,不能实时显示Label1的变化过程。
求助:实时反映Label1的值。
开始按钮的代码:
Dim gs As String = Forms("窗口").Controls("ComboBox1").Text '工时
If gs = "" Then
MessageBox.Show("请选择工时!","提示")
Return
End If
Dim sl As String = Forms("窗口").Controls("TextBox1").Text '数量
If sl = "" Then
MessageBox.Show("请填写数量!","提示")
Return
End If
Dim gs1 As Integer = CDbl(gs) * 1000
Dim sl1 As Integer = CDbl(sl) * 1000
Dim i As Integer = 0
For i = 1 To CDbl(sl)
Dim f As New Filler
f.SourceTable = DataTables("B") '指定数据来源
f.SourceCols = "组别,工位,员工,工piao,工时" '指定数据来源列
f.DataTable = DataTables("C") '指定数据接收表
f.DataCols = "组别,工位,员工,工piao,工时" '指定数据接收列
f.Fill() '填充数据
'填充数量
For Each dr As DataRow In DataTables("C").DataRows
If dr.IsNull("计数") Then
dr("计数") = i
End If
Next
DataTables("C").Save()
Dim lbl As WinForm.Label = e.Form.Controls("Label1")
lbl.Text = "第 "& i &" 次"
'延时
System.Threading.Thread.Sleep(gs1)
Next
[此贴子已经被作者于2014-9-24 15:23:47编辑过]