Dim t0 As Threading.Thread
t0=New Threading.Thread(Sub() Functions.AsyncExecute("测试"))
Dim btnAuto As WinForm.Button = e.Form.Controls("btnAuto")
Dim bt As WinForm.Button = e.Form.Controls("btnManualClear")
If bt.text = "手动清除" Then
btnAuto.Enabled=False
gbclear=True
bt.text = "停止"
t0.Start()
Else
gbclear=False
bt.text = "手动清除"
t0.Abort
End If
btnAuto.Enabled=True
Functions.AsyncExecute("测试") 部分代码
With CurrentTable
'Dim Positionrow As Integer = .Position
'Dim c As Col = .Cols(t.ColSel).name
'Dim Colname= c.Name
If .Position >49 Then
'If Positionrow > 49 Then
MessageBox.show("已到达最大行")
Else
'Dim t As Table = Tables("测试表") '用这个新增会导致主表定位到其他行
.Rows(.Position)(.Cols(.ColSel).name) = v3
.Position = .Position + 1
'向下移动一行
'End If
End If
End With
不能在异步线程里使用Foxtable的表格,datatable,table都不能使用
我需要通过com口自动采集数据,通过窗口按钮采集到table表格里。
如果不用委托,窗口就假死了。应该通过么方式解决?
t0=New Threading.Thread(Sub() Functions.AsyncExecute("测试"))
使用SQLcommand直接把数据保存到后台数据库
异步线程里用到table绝对会出错
全局表事件,CurrentChanged都有什么代码?
直接用函数还会错误吗?
t0=New Threading.Thread(Sub() Functions.Execute("测试"))
全局表事件,CurrentChanged
Dim r As Row = CurrentTable.Current
If r Is Nothing Then
Return
End If
Dim pr As DataRow : Dim dr As DataRow
Select Case CurrentTable.Name '如果用 e.Table 代替 CurrentTable 会发生错误, 原因不明
Case "表A"
dr = DataTables("设置").Find("表单名称 = '表A' And 字段名称 = '字段名'")
If dr IsNot Nothing Then
Try '刚登陆系统,
DataTables("表B").DataCols("字段名").FTPClient.RootDir = dr("值")
Catch ex As Exception
Return
End Try
End If
End select
我换了一种思路: 窗口调用线程, 线程调用窗口的按钮。 按钮里触发table的写入事件