如下代码在一个菜单按钮上,生产进度这个表有2个列窗口,一个是关联表,一个是备注列的列窗口。
在第一次切换到这个表格的时候,会报错,未将对象引用设置到对象的实例。
而第二次不会。
另外,并且每次在这个生产进度表格不停按按钮时,备注列的尺寸会不断缩小,直至达到400。而不是第一就400宽,为啥?
MainTable = Tables("生产进度")
Application.DoEvents()
For Each a As Object In Tables("生产进度").grid.parent.controls
For Each b As Object In a.controls
If b.text = "备注" Then
b.width = 400
End If
Next
Next
Tables("生产进度.物料统计").visible = True

此主题相关图片如下:捕获.png


此主题相关图片如下:捕获2.png


此主题相关图片如下:捕获3.png

我单独做了一个没有问题。但是在我的项目里面,下面的代码就是会不停的修改width。
直至其尺寸=400
For Each a As Object In MainTable.grid.parent.controls
For Each b As Object In a.controls
If b.text = "备注" Then
b.width = 400
End If
Next
Next
For Each a As Object In MainTable.grid.parent.controls
For Each b As Object In a.controls
If b.text = "备注" Then
b.width = 400
b.width = 400
b.width = 400
b.width = 400
b.width = 400
Output.Show(b.width)
Else
Output.Show(b.text)
End If
Next
Next
这样子反而有效,为啥?
应该是有其它的列窗口,或者停靠窗口,关联表窗口等影响了
没用,
我现在用这个改善。
Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(0.5)
Application.DoEvents
End While
能不能帮我看看为啥会这样。在开发模式会流畅很多,在用户模式就慢,感觉尺寸移动到一半就停了的样子。要多设定几次才行。