Foxtable(狐表)用户栏目专家坐堂 → 急,请教遍历所有窗体所有控件的方法。


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

主题:急,请教遍历所有窗体所有控件的方法。

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
急,请教遍历所有窗体所有控件的方法。  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/8/29 11:27:00 [只看该作者]

除非所有窗口都已经打开,否则不可能。

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


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By: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编辑过]

 回到顶部