Création d'objets automatiques en VB.NET
Résolu/Fermé
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
-
11 juin 2010 à 07:31
Black_Voltage Messages postés 75 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 16 mars 2015 - 15 juin 2010 à 08:11
Black_Voltage Messages postés 75 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 16 mars 2015 - 15 juin 2010 à 08:11
A voir également:
- Création d'objets automatiques en VB.NET
- Site pour vendre des objets d'occasion - Guide
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création groupe whatsapp - Guide
13 réponses
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 10:26
11 juin 2010 à 10:26
Je t'ai répondu par courriel mais peux être que les serveurs de l'entreprise pour laquel tu travail ont interprétés ma réponse comme du spam et que tu n'a pas eu ma réponse alors je recidive ici. Essaye de mettre en commentaires ton bloc:
GroupBox1.Enabled = False
GroupBox2.Enabled = False
GroupBox3.Enabled = False
etc.
et de le remplacer par:
For i = 1 to 20
Me.Controls("GroupBox" & i.ToString).Enabled = False
Next i
Dis moi ce que tu as
GroupBox1.Enabled = False
GroupBox2.Enabled = False
GroupBox3.Enabled = False
etc.
et de le remplacer par:
For i = 1 to 20
Me.Controls("GroupBox" & i.ToString).Enabled = False
Next i
Dis moi ce que tu as
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 07:41
11 juin 2010 à 07:41
For i = 1 to 20
Mycommand(i).CommandText = "SELECT * FROM poste WHERE num_poste = " & i & ";"
'Déclaration du Reader(i)
Dim myReader(i) As OleDbDataReader = Mycommand(i).ExecuteReader()
myReader(i).Read()
Label(i).Text = myReader(i).GetString(1)
If myReader(i).GetString(1) = "-" Then
bouton_stop(i).Visible = False
End If
Next i
Mycommand(i).CommandText = "SELECT * FROM poste WHERE num_poste = " & i & ";"
'Déclaration du Reader(i)
Dim myReader(i) As OleDbDataReader = Mycommand(i).ExecuteReader()
myReader(i).Read()
Label(i).Text = myReader(i).GetString(1)
If myReader(i).GetString(1) = "-" Then
bouton_stop(i).Visible = False
End If
Next i
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 07:44
11 juin 2010 à 07:44
Label1, MyReader1, bouton_stop1, ...
Ce sont des objets donc la boucle n'est qu'un exemple pour expliquer ce que je veux mais elle est impossible.
Ce sont des objets donc la boucle n'est qu'un exemple pour expliquer ce que je veux mais elle est impossible.
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 07:55
11 juin 2010 à 07:55
Donc
Dim obj as Object
Dim i as Integer
For each obj in TaCollectiondObjets
i = obj.TonIndicedObjet
- - - Ton code - - -
Next
Dim obj as Object
Dim i as Integer
For each obj in TaCollectiondObjets
i = obj.TonIndicedObjet
- - - Ton code - - -
Next
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 08:03
11 juin 2010 à 08:03
Par objet je veux dire que ce sont des labels, des boutons, des picturebox, ...
C'est bien ça que tu as compris ?
Si oui je ne comprends pas ton exemple peux-tu développer un peu plus s'il te plait ?
C'est bien ça que tu as compris ?
Si oui je ne comprends pas ton exemple peux-tu développer un peu plus s'il te plait ?
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
Modifié par ftibo le 11/06/2010 à 08:13
Modifié par ftibo le 11/06/2010 à 08:13
Je ne suis pas certain de bien comprendre ce que tu veux faire, mais si tu veux desactiver tout les objets d'un formulaires tu dois faire comme ça:
(J'ai pas de VB.NET sous la main alors je ne suis pas certain de la syntaxe mais ca ressemble à ca)
Dim obj as Object
For each obj in Me.MonFormulaire.Controls
obj.Visible =False
Next
(J'ai pas de VB.NET sous la main alors je ne suis pas certain de la syntaxe mais ca ressemble à ca)
Dim obj as Object
For each obj in Me.MonFormulaire.Controls
obj.Visible =False
Next
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 08:21
11 juin 2010 à 08:21
Non du tout ce n'est pas ça.
J'ai 20 GroupBox qui remprésente chacune un poste client.
Voila le code du poste 1 :
Comme tu vois, à chacun des objets il y'a le numéro associé (ici le numéro 1) : MyReader1, bouton_stop1, PictureBox1, ...
N'est-il pas possible de mettre ce numéro comme variable puisque ce code est répété à 20 reprises et seul le numéro à la fin des noms des objets changent.
J'ai 20 GroupBox qui remprésente chacune un poste client.
Voila le code du poste 1 :
'Requete SQL Mycommand1.CommandText = "SELECT * FROM poste WHERE num_poste = 1;" 'Déclaration du Reader Dim myReader1 As OleDbDataReader = Mycommand1.ExecuteReader() myReader1.Read() Label1.Text = myReader1.GetString(1) If myReader1.GetString(1) = "-" Then Label1.Text = myReader1.GetString(1) bouton_stop1.Visible = False End If If myReader1.GetValue(5) = 1 Then GroupBox1.Enabled = True End If If myReader1.GetValue(5) = 1 And myReader1.GetString(3) = "libre" Then PictureBox1.ImageLocation = "libre_55_37.png" ElseIf myReader1.GetValue(5) = 1 And myReader1.GetString(3) = "occupe" Then PictureBox1.ImageLocation = "occupe_55_37.png" ElseIf myReader1.GetString(3) = "down" And myReader1.GetString(1) <> "-" Then PictureBox1.ImageLocation = "down_55_37.png" End If If myReader1.GetString(3) = "libre" Then bouton_stop1.Visible = False bouton_norm1.Visible = True bouton_imprim1.Visible = True Else bouton_stop1.Visible = True bouton_norm1.Visible = False bouton_imprim1.Visible = False End If 'Fermeture du reader myReader1.Close()
Comme tu vois, à chacun des objets il y'a le numéro associé (ici le numéro 1) : MyReader1, bouton_stop1, PictureBox1, ...
N'est-il pas possible de mettre ce numéro comme variable puisque ce code est répété à 20 reprises et seul le numéro à la fin des noms des objets changent.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 08:28
11 juin 2010 à 08:28
Quelque chose comme ca:
For i = 1 to 20
Me.Controls.Items("Label" & i.ToString).Visible = False
Me.Controls.Items("PictureBox" & i.ToString).Visible = False
Me.Controls.Items("bouton_stop" & i.ToString).Visible = False
Next i
En esperant que c'est plus près de ce que tu cherche
For i = 1 to 20
Me.Controls.Items("Label" & i.ToString).Visible = False
Me.Controls.Items("PictureBox" & i.ToString).Visible = False
Me.Controls.Items("bouton_stop" & i.ToString).Visible = False
Next i
En esperant que c'est plus près de ce que tu cherche
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 08:39
11 juin 2010 à 08:39
Oui c'est beaucoup plus près !
J'ai testé mais une erreur se produit :
J'ai testé mais une erreur se produit :
La référence d'objet n'est pas définie à une instance d'un objet.
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 08:41
11 juin 2010 à 08:41
Link moi ton code et dis moi exactement à quelle ligne tu as ca
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 08:49
11 juin 2010 à 08:49
Voila le code ( c'est juste pour tester en fait) :
Private Sub bouton_stop1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bouton_stop1.Click For i = 1 To 20 Me.Controls.Item("Label" & i.ToString).Visible = False Next i End Sub
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 08:49
11 juin 2010 à 08:49
et c'est à la ligne Me.Controls.Item ...
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 08:56
11 juin 2010 à 08:56
C'est que tu n'a pas les 20 Label: Label1, Label2, Label3, etc.
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:03
11 juin 2010 à 09:03
Je suis sûr d'avoir ces contrôles. J'ai testé avec les PictureBox même erreur. Le code que tu me proposes est exactement comme je veux mais il y a cette erreur.
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:10
11 juin 2010 à 09:10
Les controles font ils tous partie du meme formulaire que ton bouton: bouton_stop1?
Car avec la commande Me, on refère à l'objet en cours (Formulaire en l'occurence)
Si tes objets se trouvent dans d'autres formulaire, il ne faut pas utiliser Me
Car avec la commande Me, on refère à l'objet en cours (Formulaire en l'occurence)
Si tes objets se trouvent dans d'autres formulaire, il ne faut pas utiliser Me
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:14
11 juin 2010 à 09:14
Oui tous mes objets font partis d'un même formulaire.
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:16
11 juin 2010 à 09:16
Je viens de m'installer VB.NET, nouveau projet, faire 20 labels et copier coller ton code test plus haut linké et ca marche... alors je sais plus :(
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:19
11 juin 2010 à 09:19
Met un point d'arrêt dans ton code (F9 sur la ligne qui bug) et vas y pas à pas. Ça bug au premier Label ou plus loin?
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:23
11 juin 2010 à 09:23
Bizarre ...
J'ai mis le code au load du form.
J'ai fais un debug et c'est au premier passage dans la boucle que ça bug.
Comme c'est dans le load dès que le programme entre dans la boucle, il ne continue plus la suite des instructions et lance la fenêtre (sans exécuter la boucle et ce qui suit)
J'ai mis le code au load du form.
J'ai fais un debug et c'est au premier passage dans la boucle que ça bug.
Comme c'est dans le load dès que le programme entre dans la boucle, il ne continue plus la suite des instructions et lance la fenêtre (sans exécuter la boucle et ce qui suit)
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:24
11 juin 2010 à 09:24
Items c'est en VB6 et VBA.... mon erreur désolé
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:25
11 juin 2010 à 09:25
Ah d'accord. J'utilise Visual Basic Express 2010 =S
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:30
11 juin 2010 à 09:30
Non finalement Item fonctionne encore en VB 2010. Mais si tu met ton code dans le Public Sub New du Form tu dois t'assurer de le mettre après le InitializeComponent
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:37
11 juin 2010 à 09:37
Deux questions :
- Tu entends quoi par Public Sub New de Form ? Je n'ai que des Private Sub même pour le Load :
Il faut que ce soit dans une Public Sub ?
- Je connais pas du tout le InitializeComponent :s
Par contre je te remercie pour l'aide et le temps que tu me donnes, c'est super sympa.
- Tu entends quoi par Public Sub New de Form ? Je n'ai que des Private Sub même pour le Load :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Il faut que ce soit dans une Public Sub ?
- Je connais pas du tout le InitializeComponent :s
Par contre je te remercie pour l'aide et le temps que tu me donnes, c'est super sympa.
ftibo
Messages postés
15
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
11 juin 2010
6
11 juin 2010 à 09:42
11 juin 2010 à 09:42
Ok j'avais mal lu. J'ai testé et dans le Form_Load de mon coté ca fonctionne.
Envoi moi ton projet test: ftibo@usa.net
Envoi moi ton projet test: ftibo@usa.net
Black_Voltage
Messages postés
75
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
16 mars 2015
1
11 juin 2010 à 09:46
11 juin 2010 à 09:46
Ok pas de soucis ;)
11 juin 2010 à 11:30
15 juin 2010 à 08:11
Cependant je n'arrive pas à utiliser le même principe pour les PictureBox.
Je crois qu'ils ne font pas partie des contrôles.