以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  遍历所有窗口与控件设置可用 不能实现  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192655)

--  作者:aoc103
--  发布时间:2024/7/9 19:50:00
--  遍历所有窗口与控件设置可用 不能实现
For Each w As WinForm.Form In Forms
    If w.Opened Then
        For Each c As WinForm.Control In w.Controls
            c.Enabled = Not c.Enabled
        Next
    End If 
Next 
以上代码对正常的窗口 都能使用,可是对于并列的窗口,能可锁定控件不可用,却无法让控件恢复正常
c.Enabled = true
如果在这里把值设置确定值,的确是可以使用,但有些控件不有强行打开,所以需要进行状态翻转,不知道代码要哪里修改,请大神支支招

--  作者:有点蓝
--  发布时间:2024/7/9 20:13:00
--  
请上传实例说明
--  作者:有点蓝
--  发布时间:2024/7/9 20:42:00
--  
试了一下,如果有容器,控件嵌套的情况下,直接遍历所有控件是不可行的,因为子控件会受到父控件的影响。

建议只遍历第一层控件
For Each c As WinForm.Control In w.Controls
改为
For Each c As WinForm.Control In w.children

--  作者:aoc103
--  发布时间:2024/7/9 21:07:00
--  
可以了 非常感谢