Visual Basic循环控件

时间:2014-07-02 00:15:13

标签: asp.net vb.net visual-studio-2012 foreach

我正在编写一个Web应用程序。我有很多按钮,除了附加一个数字(button1,button2,button3等等)之外,所有按钮都是相同的。所有这些都在名为Panel3的面板中。我想循环使用这些空白的ImageButtons并使用.ImageUrl设置它们的图像。我知道我的getIconImage()函数有效。

    Dim cntrl As Control
    For Each cntrl In Me.Panel3.Controls

        cntrl.ImageUrl = getIconImage(4)

    Next

问题是“cntrl”无法识别.ImageUrl作为选项。它就像它不认为自己是一个ImageButton。 我使用的是asp.net和vb.net。谢谢!

(作为注释:我也尝试过“Me.Controls”而没有运气。此外,我尝试设置一个等于“cntrl”的临时ImageButton对象并从那里修改.ImageUrl。)

2 个答案:

答案 0 :(得分:2)

你不能说出问题是什么,所以我假设你需要检查你在循环中得到的控制类型:

 Dim cntrl As Control
 For Each cntrl In Me.Panel3.Controls
    if TypeOf cntrl Is ImageButton Then 
       cntrl.ImageUrl = getIconImage(4)
    End if
 Next

答案 1 :(得分:1)

试试这个:

For Each cntrl As ImageButton In Me.Panel3.Controls.OfType(Of ImageButton)

可能必须Imports System.Linq