以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]通过判断控件名来设置控件的Enabled属性为何不起作用?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42278)

--  作者:loongtai
--  发布时间:2013/11/7 15:22:00
--  [求助]通过判断控件名来设置控件的Enabled属性为何不起作用?
如题,除文本框和目录树外,其它控件均不可用。但是按我在窗口的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
--  发布时间:2013/11/7 15:35:00
--  
是因为你把容器设置了不可用,容器里面的所有控件自然就都不可用了.
--  作者:loongtai
--  发布时间:2013/11/7 15:41:00
--  
哦,原来这样啊。
如果要遍历一个名为Spc的SplitContainer型控件里的所有子控件,该怎么写?
For each c as winform.control in Spc
   
next

--  作者:Bin
--  发布时间: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
--  发布时间: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
--  发布时间: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