当前位置:  开发笔记 > 编程语言 > 正文

VB.NET - 迭代容器对象中的控件

如何解决《VB.NET-迭代容器对象中的控件》经验,为你挑选了2个好方法。



1> Mark Bracket..:

您可以使用TryCast跳过GetType和CType舞蹈:

Dim dtp as DateTimePicker = TryCast(ctrl, DateTimePicker)
If dtp IsNot Nothing then dtp.Value = Now()

这样可以节省大约10行.

关闭Control类的扩展方法应该保持整洁:

 _
Public Shared Sub ClearValue(c as Control, recursive as Boolean)
   Dim dtp as DateTimePicker = TryCast(c, DateTimePicker)
   If dtp IsNot Nothing Then dtp.Value = Now()
   ' Blah, Blah, Blah
End Sub

编辑:如果想到忽略NullReferenceExceptions的Evil扩展方法不会让你感到畏缩:

 _
Public Shared Sub ClearValue(c as CheckBox)
   If c IsNot Nothing Then c.Checked = False
End Sub

TryCast(ctrl, CheckBox).ClearValue()



2> Imran..:

这是获取Form的All GroupControls的所有控件的代码,您可以在GroupBox控件中执行某些操作

Private Sub GetControls()
    For Each GroupBoxCntrol As Control In Me.Controls
        If TypeOf GroupBoxCntrol Is GroupBox Then
            For Each cntrl As Control In GroupBoxCntrol.Controls
                'do somethin here

            Next
        End If

    Next
End Sub

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有