以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 关闭列窗口出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=190253)
|
-- 作者:lur320
-- 发布时间:2024/1/26 10:16:00
-- 关闭列窗口出错
如下代码在一个菜单按钮上,生产进度这个表有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
|
-- 作者:有点蓝
-- 发布时间:2024/1/26 10:25:00
--
请上传实例测试
|
-- 作者:lur320
-- 发布时间:2024/1/26 13:52:00
--
我单独做了一个没有问题。但是在我的项目里面,下面的代码就是会不停的修改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
|
-- 作者:lur320
-- 发布时间:2024/1/26 13:52:00
--
在两个表里面都是这样
|
-- 作者:lur320
-- 发布时间:2024/1/26 13:54:00
--
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
这样子反而有效,为啥?
|
-- 作者:lur320
-- 发布时间:2024/1/26 14:13:00
--
此主题相关图片如下:捕获.png
|
-- 作者:有点蓝
-- 发布时间:2024/1/26 14:36:00
--
应该是有其它的列窗口,或者停靠窗口,关联表窗口等影响了
|
-- 作者:lur320
-- 发布时间:2024/1/26 15:56:00
--
对,旁边有关联表。如何排除影响?
|
-- 作者:有点蓝
-- 发布时间:2024/1/26 16:02:00
--
试试把关联表隐藏,设置完毕后再重新显示
|
-- 作者:lur320
-- 发布时间:2024/1/26 20:11:00
--
没用, 我现在用这个改善。 Dim sdt As Date = Date.Now While Date.Now < sdt.AddSeconds(0.5) Application.DoEvents End While
能不能帮我看看为啥会这样。在开发模式会流畅很多,在用户模式就慢,感觉尺寸移动到一半就停了的样子。要多设定几次才行。
|