IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Incrémenter nom de variable [Débutant]


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut Incrémenter nom de variable
    Bonjour à toutes et à tous,

    Je débute dans le monde de VB.Net, et je cherche à optimiser ma fonction.
    Ma fonction se présente de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub ReloadCurrentConf()
       Form1.TextBox_1.Text = GestionReseau.GetUNC(Form1.Label_1.Text)
       Form1.TextBox_2.Text = GestionReseau.GetUNC(Form1.Label_2.Text)
       Form1.TextBox_3.Text = GestionReseau.GetUNC(Form1.Label_3.Text)
       ...
       Form1.TextBox_24.Text = GestionReseau.GetUNC(Form1.Label_24.Text)
       Form1.TextBox_25.Text = GestionReseau.GetUNC(Form1.Label_25.Text)
       Form1.TextBox_26.Text = GestionReseau.GetUNC(Form1.Label_26.Text)
    End Sub
    Je cherche à optimiser mon code en insérant une boucle FOR. Cependant je ne sais pas comment gérer l'incrémentation des TextBox.
    J'ai trouvé sur ce forum cette solution pour VBA. Mais je n'arrive pas à l'adapter pour VB.Net.
    Est-ce que quelqu'un à une idée pouvant m'aider ?

    Merci par avance,
    Cdt,

    areg67
    Dernière modification par ProgElecT ; 04/04/2020 à 18h33. Motif: S'il vous plait, autant que possible, pas d'autres balises dans votre [code]...[/code]indiquez plutôt la/les ligne(s) qui pose problème, cela permet de conserver la couleur syntaxique.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Une bonne solution consiste à placer tous les TextBox dans un tableau de TextBox. Une fois cela fait, tu accèdes à chaque TextBox par son indice.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
           Dim MesTextBox(16) As TextBox   ' Indices de 0 à 16 mais seulement usage de 1 à 16. En supposant que tu utilises 16 TextBox !!!
     ' ... ... ...
           MesTextBox(1) = TextBox1
           MesTextBox(2) = TextBox2
    ' ...
     
    ' Si tous les TextBox sont déposés dans le "bon" ordre, de 1 à N,  le tableau peut être rempli à l'aide d'une boucle :
           For T As Integer = 1 To 16
                MesTextBox(T) = Me.Controls("TextBox" & T)
           Next
     
    ' Après cela, on peut traiter chaque TextBox en le désignant par son indice :
     
    ' Remplir le TextBox n° 1 par 3 astérisques :
           MesTextBox(1).Text = "***"
     
    'Remplir les autres TextBox, chacun avec la valeur de son indice :
           For T As Integer = 2 To 16
                MesTextBox(T).Text = T
           Next
     ' ... ... ...
    J’espère que ceci t'aidera ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Phil Rob
    Un grand merci pour ton exemple qui m'a permis de me débloquer.

    Voici mon code au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim MesTextbox(26) As TextBox
    Dim MesLabel(26) As Label
     
    For T As Integer = 1 To 26
          MesTextbox(T) = Me.Controls("TextBox_" & T)
          MesLabel(T) = Me.Controls("Label_" & T)
          MesTextbox(T).Text = GetUNC(MesLabel(T).Text)
    Next T
    Sujet résolu !

  4. #4
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Bonjour,
    Il semble plus indiqué d'utiliser des objets avec une List(of T) qui n’oblige de connaitre le nombre de d’occurrence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    MyTextboxList as New List(Of Textbox)
     
    'Pour ajouter
    TextBox_1 as new TextBox
    MyTextboxList.Add(TextBox)
     
    'Pour boucler :
    For each MyTextBox as TextBox in MyTextboxList 
    '...
    Next

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. incrémenter nom de variable
    Par SRVnans dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/06/2015, 12h39
  2. Incrémenter nom de variable
    Par pouponsaltro dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2011, 14h43
  3. [MySQL] incrémenter nom de variable
    Par pitxu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/03/2011, 18h44
  4. Créer un nom de variable qui s'incrémente dans une boucle
    Par Pietro_L dans le forum Général VBA
    Réponses: 3
    Dernier message: 09/05/2007, 15h10
  5. incrémenter le nom une variable
    Par mederic dans le forum C
    Réponses: 15
    Dernier message: 06/05/2006, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo