0
votes

VB - trouver forme enfant de parent

Je suis dans un projet avec plusieurs formes.

i Créez une forme TICICACTOE ici: P>

Public Class TicTacToe

    Public opponent as String
    'Some code where user set opponent

    Public Function Receive(S As String)
    if string = opponent
        'Some code
    End Function

End Class


2 commentaires

Pouvez-vous être plus précis dans votre question s'il vous plaît? Il est difficile de dire exactement ce que vous voulez. Merci


J'ai amélioré la question


3 Réponses :


0
votes

Utilisez ceci pour afficher le formulaire

For Each f As TicTacToe in Application.OpenForms().OfType(Of TicTacToe)
        f.Receive (S)
Next


7 commentaires

Merci cela fonctionne pour 1 forme au moins. Mais si j'appelle deux fois MenuTictactoe et créez 2 formulaire, la fonction ne semble pas être appelée sur les 2 formes


C'est parfait maintenant. Merci


En fait, cela ne fonctionne pas. Lorsque j'appelle mes formulaires, la même forme (la dernière) est appelée deux fois et l'autre zéro


Ensuite, vous devrez peut-être créer différentes formes et copier le contenu de votre formulaire TictactoToe, alors vous pouvez les désigner par leurs noms individuels.


je ne suis pas sûr. Le but est de créer un tictactoe en ligne et de permettre à l'utilisateur de laucher autant de jeu qu'ils veulent. Ensuite, lorsque je reçois un coup, je dois vérifier tous les formulaires de jeux si le nom adversaire est celui reçu. Donc, la réponse que vous avez donnée ressemble à cela. Parce que si je crée une différence différente, je vais avoir un nombre limité de jeu, non?


OUPS SRY Effectuièrement cela fonctionne, c'était une autre erreur dans le code précédent qui le fait de la disconférence. Merci beaucoup pour vos réponses


@Phoenix Ce n'est pas très bonne pratique sur afin de changer ce que vous demandez dans un commentaire, puis d'accepter une réponse différente basée sur ce commentaire . Juste dire.



0
votes

en C #, vous auriez besoin d'une nouvelle instance, mais comme vous êtes dans VB, le compilateur le fait déjà que pour vous.

Ce que vous faites actuellement, crée une nouvelle instance du Tictactoe Formulaire et montrant: P>

Private Sub MenuTicTacToe(ByVal sender As Object, ByVal e As System.EventArgs)
    TicTacToe.Show(Me)
End Sub


3 commentaires

Merci alors cela fonctionne pour 1 formulaire. Mais si j'appelle deux fois MenuTictactoe et créez 2 formulaires (ou plus), comment appeler la fonction dans chaque formulaire?


@Phoenix Quelle fonction voulez-vous appeler? Si vous souhaitez appeler la méthode de réception, utilisez-le simplement comme ci-dessus. Si je vous comprends correctement, vous pouvez simplement utiliser à nouveau le code ci-dessus et remplacer les noms de formulaire, ne créez pas vous-même des instances de formulaire vous-même. OH et BTW, si une réponse a résolu votre problème, vous pouvez le marquer comme "accepté" à l'aide de la coche verte ci-dessous sur les boutons de vote, de sorte qu'il disparaît de la section "non panée".


Je veux appeler recevoir, mais sous plusieurs formes. @PeciousBetine Réponse ressemble à ce que je veux faire, mais quelque chose ne fonctionne pas



1
votes

Commentaires en ligne

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    page.Receive("Joe")
End Sub
'A form level variable to hold a reference to the instance of TicTacToe
'Although vb.net can use default instances, you have created an explicit
'instance of TicTacToe so you need to keep a reference if you want to
'refer to this instance.
Private page As TicTacToe
Private Sub MenuTicTacToe(ByVal sender As Object, ByVal e As System.EventArgs)
    page = New TicTacToe()
    page.Show(Me)
End Sub

Partial Public Class TicTacToe
    Inherits Form
    Public opponent As String
    'Functions must be declared as a Type
    'If you do not need a return value use a Sub
    Public Function Receive(S As String) As String
        Dim someString As String = ""
        If S = opponent Then
            'Do something
        End If
        'There must be a return Value
        Return someString
    End Function

End Class


2 commentaires

L'OP ne cherche pas un tutoriel sur la manière d'utiliser des fonctions! :)


@PeciousBetine Quand je vois un code incorrect dans une question, j'essaie de le corriger et d'ajouter une explication. Je suis désolé si cela vous dérange.