В C # вам потребуется новый экземпляр, но, как и в VB, компилятор уже сделает это за вас.
То, что вы сейчас делаете, - это создание нового экземпляра TicTacToe
Форма и отображение:
Private Sub MenuTicTacToe(ByVal sender As Object, ByVal e As System.EventArgs)
Dim page As Form = New TicTacToe
page.Show(Me)
End Sub
Но вы нигде не сохраняете этот экземпляр.Затем в следующем фрагменте кода вы используете другой экземпляр, который является статическим, созданным компилятором:
TicTacToe.Receive(S) // TicTacToe is the static instance
Следовательно, в итоге вы вызываете два разных экземпляра, что объясняет, почему существуетоппонент не установлен.
Чтобы обойти эту проблему, не создавайте новый экземпляр.В вашем Private Sub MenuTicTacToe
просто используйте экземпляр, созданный компилятором, и у вас не возникнет этой проблемы, например:
Private Sub MenuTicTacToe(ByVal sender As Object, ByVal e As System.EventArgs)
TicTacToe.Show(Me)
End Sub
Надеюсь, это поможет.