Former le nom d'un objet a partir de chaines de caractères (VB)

Former le nom d'un objet a partir de chaines de caractères (VB) - VB/VBA/VBS - Programmation

Marsh Posté le 21-01-2007 à 13:42:39    

Bonjour
 
J'ai un projet d'info a faire (il s'agit du jeu Risk)
Voici mon problème, chaque pays est représenté par un bouton, Pays1, Pays2, Pays3..., Pays41
Pour changer la couleur de tous les boutons sans avoir a ecrire 41 lignes ( car 41 pays), j'aimerais faire une boucle for de ce style

Code :
  1. for i=1 to 41
  2.       "Pays" & i.backcolor = color.red
  3. next i


Ce code est faux, c est le principe qui est interessant
 
Ainsi, le nom de l'objet serait déterminé par une chaine de caractère. Je n'ai pas trouvé de solution pour faire ça. Donc 1, est il possible de le faire, et si oui, comment
merci :)

Reply

Marsh Posté le 21-01-2007 à 13:42:39   

Reply

Marsh Posté le 22-01-2007 à 13:14:13    

En vb6 ton formulaire a une collection qui se nomme .Controls
Elle contient tous les contrôles de ton formulaire.
Tu peux l'utiliser sous la forme « frm.Controls(variable) »
Ça donne quelquechose comme

Dim ctrl as commandbutton, nomCtrl as String
...
Set Ctrl = me.Controls(nomCtrl)
With Ctrl
   .BackColor = ...
   .ForeColor = ...
End With

En faisant varier le contenu de ta variable « nomCtrl » tu peux accéder aux contrôles que tu veux.
 
Fait de mémoire sans garantie ni SAV :)

Reply

Marsh Posté le 23-01-2007 à 01:22:39    

merci,  sa marche
(meme si ton code n est pas tout a fait exacte)

Reply

Marsh Posté le 04-02-2007 à 23:43:45    

Re, j ai de nouveau un probleme de varaible:
 
 
Je doit passer de VB 2005 express à VB 2003
 
premirement, je ne trouve pas le moyen de convertir mon projet, passons, je faire refaire mes quelque forms à la main. Mais la j ai un second problème:

Code :
  1. Form1.P_Selection.Ctrl.Text += 1


Cette ligne situé dans la form "form2" me donne l'erreur :Reference to a non shared member require a shared reference
 
Pourtant la variable P_selection est déclaré en public dans form1
 

Code :
  1. Public Class Form1
  2.     Inherits System.Windows.Forms.Form
  3.   Public P_Selection As S_Pays_Actif


 
Avez vous la solution?


Message édité par Milli2048 le 04-02-2007 à 23:44:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed