baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006
-
15 juin 2006 à 10:21
baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006
-
16 juin 2006 à 09:37
788121 bonjour ,
tout le monde alors voila j'ai fait un bout de programme qui marche mais je vourdrais arriver a le ratraicir un peu car je trouve ca lourd.
Le but de ce bout de programme et d'envoyer a des maskedtextbox les coordonnées d'origine soit d'un textbox , soit d'un combobox ou encore d'un datetimepiker.
voici le code:
If
ComboBox2.Text = "montantNumérique" Then
MaskedTextBox1.Text = montantNumerique.Location.X
MaskedTextBox2.Text = montantNumerique.Location.Y
End
If
If ComboBox2.Text =
"montantLettre1"
Then
MaskedTextBox1.Text = montantLettre1.Location.X
MaskedTextBox2.Text = montantLettre1.Location.Y
End
If
If ComboBox2.Text =
"montantLettre2"
Then
MaskedTextBox1.Text = montantLettre2.Location.X
maskedTextBox2.Text = montantLettre2.Location.Y
End
If
If ComboBox2.Text =
"lieu"
Then
MaskedTextBox1.Text = lieu.Location.X
MaskedTextBox2.Text = lieu.Location.Y
End
If
If ComboBox2.Text =
"beneficiaire"
Then
MaskedTextBox1.Text = beneficiaire.Location.X
MaskedTextBox2.Text = beneficiaire.Location.Y
End
If
If ComboBox2.Text =
"date1"
Then
MaskedTextBox1.Text = date1.Location.X
MaskedTextBox2.Text = date1.Location.Y
End
If
Je voudrais savoir s'il n'existe pas une boucle pour faire la meme chose mais en beaucoup moins de ligne svp?
je pose cet question car en navigant sur ce site il me semble avoir vu une astuce de ce style mais je ne la retrouve pas
Boarf tu ne pourra pas rétrécir grand chose, mise a par tout tes IF que tu transforme en un SelonSelon : <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 15 juin 2006 à 10:33
Je ne pense pas qu'une boucle t'aiderais. mais une salection oui. Je m'explique plutot que de faire des "if" sucsésif faire un "select case". Voila la bout de code :
Select Case ComboBox2.Text
Case "montantNumérique":
MaskedTextBox1.Text = montantNumerique.Location.X
MaskedTextBox2.Text = montantNumerique.Location.Y
Case "montantLettre1":
MaskedTextBox1.Text = montantLettre1.Location.X
MaskedTextBox2.Text = montantLettre1.Location.Y
Case "montantLettre2":
MaskedTextBox1.Text = montantLettre2.Location.X
MaskedTextBox2.Text = montantLettre2.Location.Y
Case "lieu":
MaskedTextBox1.Text = lieu.Location.X
MaskedTextBox2.Text = lieu.Location.Y
Case "beneficiaire":
MaskedTextBox1.Text = beneficiaire.Location.X
MaskedTextBox2.Text = beneficiaire.Location.Y
Case "date1":
MaskedTextBox1.Text = date1.Location.X
MaskedTextBox2.Text = date1.Location.Y
End Select
P.S.: Ton code serait plus rapide comme cas :
If ComboBox2.Text = "montantNumérique" Then
MaskedTextBox1.Text = montantNumerique.Location.X
MaskedTextBox2.Text = montantNumerique.Location.Y
ElseIf ComboBox2.Text = "montantLettre1" Then
MaskedTextBox1.Text = montantLettre1.Location.X
MaskedTextBox2.Text = montantLettre1.Location.Y
ElseIf ComboBox2.Text = "montantLettre2" Then
MaskedTextBox1.Text = montantLettre2.Location.X
MaskedTextBox2.Text = montantLettre2.Location.Y
ElseIf ComboBox2.Text = "lieu" Then
MaskedTextBox1.Text = lieu.Location.X
MaskedTextBox2.Text = lieu.Location.Y
ElseIf ComboBox2.Text = "beneficiaire" Then
MaskedTextBox1.Text = beneficiaire.Location.X
MaskedTextBox2.Text = beneficiaire.Location.Y
ElseIf ComboBox2.Text = "date1" Then
MaskedTextBox1.Text = date1.Location.X
MaskedTextBox2.Text = date1.Location.Y
End If
Plus rapide car si "ComboBox2.Text" est agale à "montantLettre1" alors les autre test ne seront pas fait (soit le même comportement que le "select case").
Juste pour ton information, avec tes IF, ton processeur fais tous les if 1 par 1, donc ca prend de la mémoire, avec le SELECT, des qu'une solution marche, le programme termine le SELECT et continue le programme, donc tu y gagne en vitesse et en mémoire
(J'espere avoir été clair )
Comme l'a si bien dit Polack77 en fait
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 juin 2006 à 11:24
Salut,
Je sais que c'est du Point NET
Mais en vb6 il est possible de passer en revue tout les controles d'une feuille (en esperant que date1, Montantlettre... soit des control)
Après il faut adapter la boucle au Langage .NET
Dim ctrl As Control
For Each ctrl In Me.Controls
If ctrl.Name = ComboBox2.Text Then
MaskedTextBox1.Text = ctrl.Location.X
MaskedTextBox1.Text = ctrl.Location.Y
End If
Next
baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006 15 juin 2006 à 11:54
j'ai ragarder ton code jrivet et cela marche aussi en vb.net donc je vais la garder en solution mais je peux pas l'utiliser car les texbox ne doivent pas etre des control et je vais le mettre en réponse acceptée mais j'ai un seul souci c'est que je ne sais pas quel son tous les controle?
baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006 15 juin 2006 à 14:37
je viens de remarquer qu'il y a une condition pour que ta solution marche jrivet c'est qu'il ne faut pas mettre les controls dans des groupbox sinon cela ne marche pas car il me trouve que les groupbox
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 juin 2006 à 14:55
Re,
Oui effectivement il faut que la boucle parcours tout les conteneurs éventuels d'autres groupe. Mais nous n'étions pas censer savoir que tes controls étaient regroupés dans des autres.
après tout tu as ta réponse et c'est le principal
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée
baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006 15 juin 2006 à 16:02
oui je sais je suis desolé j'avais oublier de le précisez et oui j'ai ma réponse mais ta solution me plaisait bien et par hasard tu aurais pas la solution pour parcourir tout les groupbox?
baltazar85
Messages postés40Date d'inscriptionmercredi 31 mai 2006StatutMembreDernière intervention30 juin 2006 16 juin 2006 à 09:37
oki merci je verrai ca dans 2 semaines maxi et j'ajouterai la solution si je la trouve car la mon principal souci et d'arriver a finir mon prog pour mon stage qui se finit dans 2 semaines^^
merci a toi jrivet et au autre qui m'ont proposer des solutions et qui m'en ont donner de bonne.