Foxtable(狐表)用户栏目专家坐堂 → [求助]通过判断控件名来设置控件的Enabled属性为何不起作用?


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

主题:[求助]通过判断控件名来设置控件的Enabled属性为何不起作用?

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
[求助]通过判断控件名来设置控件的Enabled属性为何不起作用?  发帖心情 Post By:2013/11/7 15:22:00 [只看该作者]

如题,除文本框和目录树外,其它控件均不可用。但是按我在窗口的AfterLoad事件中的代码,好像所有控件都不可用,第二段代码不起作用?
For Each c As winform.control In e.Form.controls
    c.Enabled=False
Next
’第二段:设定enabled可用控件
For Each c As winform.control In e.Form.controls
    If c.name="TextBox1" Or c.name="TreeView1" Then
        c.Enabled=True
    End If
Next
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:控件enabled属性设置.zip



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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/7 15:35:00 [只看该作者]

是因为你把容器设置了不可用,容器里面的所有控件自然就都不可用了.

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2013/11/7 15:41:00 [只看该作者]

哦,原来这样啊。
如果要遍历一个名为Spc的SplitContainer型控件里的所有子控件,该怎么写?
For each c as winform.control in Spc
   
next

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/7 15:44:00 [只看该作者]

For Each c As winform.control In e.Form.controls("SplitContainer1").panel1.Children



For Each c As winform.control In e.Form.controls("SplitContainer1").panel2.Children

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4332 威望:0 精华:0 注册:2013/7/26 10:24:00
  发帖心情 Post By:2013/11/7 16:03:00 [只看该作者]

For Each c As winform.control In e.Form.controls
    If Typeof c Is winform.splitcontainer OrElse Typeof c Is winform.groupbox Then   '将分区面板类型的控件设为true
        c.enabled=True
    ElseIf c.name="TextBox1" Or c.name="TreeView1" Then   '再来设置单个控件
        c.Enabled=True
    Else 
        c.Enabled=False
    End If
Next
可得到的结果 ,textbox1仍然不可用。问题出在哪呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/7 16:33:00 [只看该作者]

你怎么还是这样做呀图片点击可在新窗口打开查看

For Each c As winform.control In e.Form.controls("SplitContainer1").panel1.Children
    If c.name<>"TextBox1" AndAlso c.name<>"TreeView1" Then
        c.Enabled=False
    End If
Next

 回到顶部