I am not sure why you want to do the Button array, but check this code out. I have created an Array of 27 (0-26) buttons and am able to click on one and return its column and row position based off the Tag number. It uses one function that is added to each button. Just create a windows for, and paste this code in (might need to save the Windows Designer code from your new form)
Public Class Form33
Inherits System.Windows.Forms.Form
'This is just a test program to see if I can
'come up with a different way of doing this button
'array BS without using a Class object
Dim Butts(26) As Windows.Forms.Button
Private Sub Form33_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim row As Integer
Dim col As Integer
For x As Integer = 0 To 26
Butts(x) = New Windows.Forms.Button
Butts(x).Tag = x
Butts(x).Text = "B" & x.ToString
row = Math.Floor(x / 9) + 1
col = (x Mod 9) + 1
Butts(x).Top = 2 + ((row - 1) * 32)
Butts(x).Left = 2 + ((col - 1) * 32)
Butts(x).Width = 32
Butts(x).Height = 32
Me.Controls.Add(Butts(x))
AddHandler Butts(x).Click, AddressOf ButtClick
Next x
End Sub
Sub ButtClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim T As String = CType(sender, System.Windows.Forms.Button).Tag
Dim Row As Integer = Math.Floor(CInt(T) / 9) + 1
Dim Col As Integer = (CInt(T) Mod 9) + 1
MsgBox("Row and Col derived from the Tag on " & CType(sender, System.Windows.Forms.Button).Text & " is " & Row & ", " & Col)
End Sub
End Class