首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

动态生成的控件,怎么根据控件的name来查找该控件是否存在

2013-10-02 
动态生成的控件,如何根据控件的name来查找该控件是否存在?如:在容器picturebox1里面动态生成加载了n层pict

动态生成的控件,如何根据控件的name来查找该控件是否存在?
如:在容器picturebox1里面动态生成加载了n层picturebox控件,如何根据控件的name来查找该控件是否存在?
[解决办法]

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If EnumControls().Any(Function(x) x.Name = "PictureBox6") Then
            MsgBox("存在")
        Else
            MsgBox("不存在")
        End If
    End Sub

    Private Function EnumControls() As IEnumerable(Of Control)
        Return Controls.OfType(Of Control)().Union(Controls.OfType(Of Control)().SelectMany(Function(x) EnumChildControls(x)))
    End Function

    Private Function EnumChildControls(parent As Control) As IEnumerable(Of Control)
        Return parent.Controls.OfType(Of Control)().Union(parent.Controls.OfType(Of Control)().SelectMany(Function(x) EnumChildControls(x)))
    End Function
End Class

[解决办法]
Function(x) x.Name = "PictureBox6" 这是一个函数

function (x as control) as bool
return x.name="picturebox6"
end function
[解决办法]
dim t_picture1 as PictureBox = EnumControls().First(Function(x) x.Name = "PictureBox6") 

热点排行