Foxtable(狐表)用户栏目专家坐堂 → 关闭列窗口出错


  共有2611人关注过本帖树形打印复制链接

主题:关闭列窗口出错

帅哥哟,离线,有人找我吗?
lur320
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
关闭列窗口出错  发帖心情 Post By: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
图片点击可在新窗口打开查看





 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/1/26 13:52:00 [显示全部帖子]

在两个表里面都是这样

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/1/26 14:13:00 [显示全部帖子]

 
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/1/26 15:56:00 [显示全部帖子]

 对,旁边有关联表。如何排除影响?


 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/1/26 20:11:00 [显示全部帖子]

 没用,
我现在用这个改善。
 Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(0.5)
    Application.DoEvents
End While

能不能帮我看看为啥会这样。在开发模式会流畅很多,在用户模式就慢,感觉尺寸移动到一半就停了的样子。要多设定几次才行。

 回到顶部
帅哥哟,离线,有人找我吗?
lur320
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1032 积分:8989 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2024/1/26 20:22:00 [显示全部帖子]

这个比较好。。。

For Each a As Object In Tables("生产进度").grid.parent.controls
 
    For Each b As Object In a.controls
        
        If b.text = "备注" Then
            
            Do
                b.width = 400
            Loop While b.width > 405 Or b.width < 395   这里循环设定其宽度,
            
        End If
        
    Next
Next

 回到顶部