Lo hice simple, el primero que pulsa es X y luego va iterando con el pulsa si es par o impar para saber si es X o O
Public Class UserControl1
Dim boton As New List(Of Button)
Dim pulsa As Integer
Dim XO() As String = {"X", "O"}
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
boton.Add(uno)
boton.Add(dos)
boton.Add(tres)
boton.Add(cuatro)
boton.Add(cinco)
boton.Add(seis)
boton.Add(siete)
boton.Add(ocho)
boton.Add(nueve)
AddHandler uno.Click, AddressOf tateti
AddHandler dos.Click, AddressOf tateti
AddHandler tres.Click, AddressOf tateti
AddHandler cuatro.Click, AddressOf tateti
AddHandler cinco.Click, AddressOf tateti
AddHandler seis.Click, AddressOf tateti
AddHandler siete.Click, AddressOf tateti
AddHandler ocho.Click, AddressOf tateti
AddHandler nueve.Click, AddressOf tateti
jugardenuevo()
End Sub
Private Sub jugardenuevo()
pulsa = 1
For i As Integer = 0 To boton.Count - 1
boton(i).Text = ""
boton(i).Font = New System.Drawing.Font("Microsoft Sans Serif", 48.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
boton(i).BackColor = Color.Red
boton(i).TabIndex = i + 1
Next
End Sub
Private Sub tateti(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim pulsado As Integer = (CType(sender, Button).TabIndex - 1)
For i As Integer = 0 To 8
If (pulsado = i) And ((pulsa Mod 2) <> 0) Then
boton(i).Text = "X"
End If
If (pulsado = i) And ((pulsa Mod 2) = 0) Then
boton(i).Text = "O"
End If
Next
For i As Integer = 0 To 1
If (uno.Text = XO(i) And dos.Text = XO(i) And tres.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (cuatro.Text = XO(i) And cinco.Text = XO(i) And seis.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (siete.Text = XO(i) And ocho.Text = XO(i) And nueve.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (uno.Text = XO(i) And cuatro.Text = XO(i) And siete.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (dos.Text = XO(i) And cinco.Text = XO(i) And ocho.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (tres.Text = XO(i) And seis.Text = XO(i) And nueve.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (tres.Text = XO(i) And cinco.Text = XO(i) And siete.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
If (uno.Text = XO(i) And cinco.Text = XO(i) And nueve.Text = XO(i)) Then MessageBox.Show("Ganastes " + XO(i) + "") : pulsa = 9
Next
pulsa += 1
If (pulsa = 10) Then
jugardenuevo()
End If
End Sub
End Class