Création d'objets automatiques en VB.NET
Résolu
Black_Voltage
Messages postés
75
Date d'inscription
Statut
Membre
Dernière intervention
-
Black_Voltage Messages postés 75 Date d'inscription Statut Membre Dernière intervention - 15 juin 2010 à 08:11
Black_Voltage Messages postés 75 Date d'inscription Statut Membre Dernière intervention - 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 site web - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
13 réponses
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
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
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
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
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
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
Link moi ton code et dis moi exactement à quelle ligne tu as ca
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
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 :(
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?
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
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.
Cependant je n'arrive pas à utiliser le même principe pour les PictureBox.
Je crois qu'ils ne font pas partie des contrôles.