I would recommend against using many controls for this game, as they are unneeded, and since control arrays are unsupported (in the
forms designer, anyway), it will mean more code than you really
need. What you should do is use one single Panel control as the
main "playing surface" and then programatically check the MouseDown
events.
What you should do is create a 2-dimensional array at form level, and
store the values of each of the 42 spots (black, red, empty [or whatever])
in that. Then you can use the Panel's MouseDown or MouseUp event
to both check the position of the point you clicked on, but also check
legal moves, check for winning combinations, etc.
If you want to use this method, you will need to read up on the
GDI+, which lives in the System.Drawing namespace. Remember though,
you should keep all your painting code in the _Paint event of the
panel, otherwise you may run into redrawing troubles.