以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在没有什么方法来判断某种控件是否具有某个属性?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42273)

--  作者:loongtai
--  发布时间:2013/11/7 14:15:00
--  [求助]在没有什么方法来判断某种控件是否具有某个属性?
如题,不同的控件除了通用属性外,各自均有各自不同的属性参数。有没有什么方法或语句来判断某个控件是否具有某个属性?如判断textbox是否具有allowedit属性?
--  作者:Bin
--  发布时间:2013/11/7 14:19:00
--  
你的需求是什么? 为什么要这么判断呢?
--  作者:loongtai
--  发布时间:2013/11/7 14:35:00
--  
对于一个窗口,不同角色的人使用的时候可允许编辑的控件是不同的。当控件数量较多或是种类较杂时,我不想一个个地去设置哪些控件的allowedit=true,这样比较麻烦。我的想法是将可允许编辑的控件名称放到一个集合里,通过遍历控件,同时判断控件的名称是否在这个集合里,从而决定allowedit属性的设置。
Select Case e.Form.text
    Case "查询"
        For Each ctl As winform.control In e.Form.controls
            If lst1.contains(ctl.name) Then
                ctl.enabled=True
            ElseIf lst2.contains(ctl.name) Then
                ctl.allowedit=True                 ‘allowedit 不属于通用属性,所以想在这之前加一个判断语句:如果控件ctl具有allowedit属性,则                                                                         ctl.allowedit=true
            Else
                ctl.enabled=False
                ctl.allowedit=False
            End If 
        Next
case else
……
 End Select

--  作者:Bin
--  发布时间:2013/11/7 14:38:00
--  
不可用通常都是直接设置 Enabled  属性 所有控件都有这个属性的.
--  作者:loongtai
--  发布时间:2013/11/7 14:42:00
--  
enabled属性是共有属性,因此无须判断,但allowedit就不是了,所以想通过遍历控件的方式来设置这个属性,那就需要先判断遍历的控件是否具有allowedit 属性
--  作者:Bin
--  发布时间:2013/11/7 14:43:00
--  
除开表控件,还有别的控件有这个属性吗?  你直接判断是否表控件不就可以了?