1). You can use the AddHandler statement to add an event handler for a control dynamically, something like this:
Code Snippet
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim j As Integer = 0
Do While (j < 10)
Dim tx As TextBox = New TextBox
AddHandler tx.TextChanged, AddressOf Me.tx_TextChanged
j = (j + 1)
Me.Controls.Add(tx)
Loop
End Sub
Private Sub tx_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
' stuff here
End Sub
2). For declaring array in VB.NET 9.0, you can read this document: Overview of Visual Basic 9.0
3). If you mean the .NET 1.x control DataGrid, then you should add a column to its data source at run time.
If you mean the DataGridView control, you can either adding a column to the DataGridView itself by code something like me.dataGridView.Columns.Add("newColumn","newColumn"),
or adding a column to the data source under-lying if the DataGridView is data bound.