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
3 Réponses :
Utilisez ceci pour afficher le formulaire
For Each f As TicTacToe in Application.OpenForms().OfType(Of TicTacToe) f.Receive (S) Next
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 i>. Juste dire.
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
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
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
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.
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