0
votes

Comment faire référence à des contrôles à l'aide de la variable dans une boucle?

J'ai des étiquettes nommées: label1 , label2 , ... Label16 . Je veux attribuer un nombre aléatoire à tous.

Quelque chose comme ça pourrait fonctionner mais je ne connais pas la syntaxe: xxx

Vos suggestions seraient appréciées.


1 commentaires

Avez-vous essayé de courir ce code? Si oui, avez-vous fait ce que vous attendiez?


3 Réponses :


1
votes

Vous pouvez utiliser ceci en utilisant contrôle.find : xxx


0 commentaires

0
votes

obtenir un entier aléatoire fort> p>


Utilisez le aléatoire classe au lieu du RND fonction pour obtenir un aléatoire code> dans une plage spécifiée dans le aléatoire.next (int32, int32) code> méthode. Déclarez une variable de classe de aléatoire code> Type: p> xxx pré>

Trouver une gamme de commandes forte> p> blockQquote>

Cet extrait de code iTerate sur la collection code> Collection du conteneur, renvoie - le cas échéant - l'étiquette code> code> indique que leurs noms sont égaux à Une gamme de noms commence à partir de Label1 code> à Label16 code>, et enfin, attribuez un fichier aléatoire code> à leur texte code> P>

Private Sub TheCaller()
    For Each lbl In GetAllControls(Of Label)(Me).
        Where(Function(x) Enumerable.Range(1, 16).
        Any(Function(y) x.Name.ToLower.Equals($"label{y}")))
        lbl.Text = rand.Next(1, 100).ToString
    Next
End Sub


0 commentaires

0
votes
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim labels As New List(Of Label) From {Label1, Label2, Label3, Label4}
    For Each l As Label In labels
        l.Text = rand.Next(99).ToString
    Next
End Sub
To use your approach
Declare a variable for the Random class outside your method (a Form level variable).
Create a List of labels.
Loop through all the labels in your list and set the .Text property with the .Next method of the Random class.

0 commentaires