以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  急,请教遍历所有窗体所有控件的方法。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=22973)

--  作者:Fotable
--  发布时间:2012/8/29 10:00:00
--  急,请教遍历所有窗体所有控件的方法。

我想让整个系统,所有控件统一变换颜色风格,这就必须遍历所有窗体 所有控件?

怎么办呢?

 

我写了以下代码

For Each frm As WinForm.Form In Forms
For Each c As Winform.Control In frm.Controls  \'这句会报错 怎么办
    c.BackColor = Color.Green \'统一变换风格
Next
Next


--  作者:czy
--  发布时间:2012/8/29 11:27:00
--  
除非所有窗口都已经打开,否则不可能。
--  作者:Fotable
--  发布时间:2012/8/29 21:44:00
--  

研究了2天终于 找到 遍历所有控件的方法

分享给大家

主代码:负责依次打开各个窗体

For Each frm As WinForm.Form In Forms
\'MainTable = Tables(frm.tablename)
MyTimers("计划1").Enabled = True
frm.open
Next

 

遍历控件代码 要放在定时器的click事件内完成,这是唯一的方法

Dim frm As WinForm.Form = Forms.ActiveForm
If frm IsNot Nothing Then
MyTimers("计划1").Enabled = False
frm.BaseForm.ControlBox = True
For Each c As Winform.Control In frm.Controls    
    c.BackColor = Color.Green
Next

frm.close
End If

[此贴子已经被作者于2012-8-29 21:50:54编辑过]