VB中可以把一组控件用一个变量名字组合到一起,作为一个控件数组,然后引用index就可以操作了。前2天同学问asp.net下可以否!!后来另一个说可以定义控见数组,听起来可行,可没用过,试验,发现,好用极了!!
    Protected form1 As HtmlForm
    
Protected chkArray(6As CheckBox
    
Protected ddlArray(6As DropDownList

    
Private Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
 
        
Dim i As Integer
       
Dim sArray() As String = {"test1""test2"}

        
For i = 0 To chkArray.Length - 1
            chkArray(i) 
= New CheckBox
            ddlArray(i) 
= New DropDownList
            chkArray(i).ID 
= "chk" & i
            ddlArray(i).ID 
= "ddl" & i
            ddlArray(i).DataSource 
= sArray
            ddlArray(i).DataBind()
            
'' 动态添加控件
            form1.Controls.Add(chkArray(i))
            form1.Controls.Add(ddlArray(i))
 
       
Next
    
End Sub

还有一个问题是做一个日历控件,在每一天都添加一组控件,实现象记事本一样的功能。找了好久代码,都没发现如何添加记事本得方法。后来发现这样可以得。简单极了,可同学不信,非要自己写table,然后自己加算法。麻烦!!!
这个比较简单
    Private Sub Calendar1_DayRender(ByVal sender As ObjectByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Calendar1.DayRender
        
Dim c As TableCell
        
Dim d As CalendarDay
        d 
= CType(e, DayRenderEventArgs).Day
        c 
= CType(e, DayRenderEventArgs).Cell
        
If d.IsToday Then
          
''在今天添加一组控件
            c.Controls.Add(New LiteralControl("<table><tr><td>"))
            c.Controls.Contains(chkArray(
0))
            c.Controls.Add(
New LiteralControl("<br>"))
            c.Controls.Add(ddlArray(
0))
            c.Controls.Add(
New LiteralControl("</td></tr></table>"))

        
End If

    
End Sub