cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
19 mars 2015 à 18:33
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
20 mars 2015 à 06:39
Installation hier de VB2010 Express.
Donc new dans ce domaine !!!
Mon projet : Convertir une de mes applis hta-vbs en VB 2010 Express.
Je souhaite créer dynamiquement plusieurs GroupeBox dans une Form.
Ma première difficulté, la première GroupeBox :
Option Strict On Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Création GroupeBox1 et ajout Buttons. Dim groupBox1 As New GroupBox()
Dim Button1 As New Button() Button1.Location = New Point(40, 15) Button1.Text = "Bouton1" groupBox1.Controls.Add(Button1)
Dim Button2 As New Button() Button2.Location = New Point(40, 40) Button2.Text = "Bouton2" groupBox1.Controls.Add(Button2)
Dim Button3 As New Button() Button3.Location = New Point(40, 65) Button3.Text = "Bouton3" groupBox1.Controls.Add(Button3)
groupBox1.Text = "Génération Plan de Production"
' Ajout Groupboxes dans Form1. groupBox1.Top = 40 groupBox1.Left = 20 groupBox1.Width = 170 Me.Controls.Add(groupBox1) 'AddHandler groupBox1.Click, AddressOf groupBox1_click End Sub End Class
Ce code m'affiche correctement les 3 boutons dans la Form1.
Mon but étant de parser un fichier .txt pour créer les x buttons Client dans ce premier GroupeBox,
j'essaie donc une boucle For ... Next.
Par contre, le code ci-dessous ne m'affiche que le Button1 dans la Form1.
Question : où est mon erreur !!!
Option Strict On Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Création GroupeBox1 et ajout Buttons. Dim groupBox1 As New GroupBox() Dim intPos As Integer = 25
For i As Integer = 0 To 2 MessageBox.Show("check " & i + 1 & vbTab & "Bouton" & i + 1) Dim Button As New Button() Button.Location = New Point(15, intPos + 25) Button.Text = "Bouton" & i + 1 groupBox1.Controls.Add(Button) 'AddHandler groupBox1.Click, AddressOf groupBox1_click Next ' Ajout Groupboxes dans Form1. groupBox1.Top = 40 groupBox1.Left = 20 groupBox1.Width = 170 Me.Controls.Add(groupBox1) 'AddHandler groupBox1.Click, AddressOf groupBox1_click End Sub End Class
Vous l'aurez certainement compris, après avoir résolu le problème de la boucle, ma prochaine question, dans un new post, sera :
- comment récupérer le handle du bouton cliqué.
Zermelo
Messages postés378Date d'inscriptionsamedi 22 septembre 2012StatutMembreDernière intervention13 août 201714 19 mars 2015 à 18:46
Bonsoir cs_JMO.
Pour autant qu'il m'en souvienne, un contrôle créé dynamiquement a sa propriété Visible égale à False. Il faut donc mettre cette propriété à True à chaque création dynamique.
Cordialement.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 19 mars 2015 à 19:15
Bonjour, JMO,
A mon avis, tes boutons sont superposés, raison pour laquelle tu n'en vois qu'un (celui du dessus)
Button.Location = New Point(15, intPos + 25)
comme intpos n'évolue pas avec i, ils sont tous un au dessus de l'autre.
Idem pour tes groupboxes.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 19 mars 2015 à 19:32
Bonsoir Jacques
Effectivement en ajout un select case i et en modifiant Button.Location les boutons étaient bien superposés.
A moi maintenant de faire la bonne présentation dans Form1.
Merci et bonne soirée,
jean-marc
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212
>
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018 19 mars 2015 à 20:43
Re-bonsoir, Jean-Marc,
Pour ce qui est de la "répartition" dans le container, c'est peut-être de la pure arithmétique.
Fouille dans les sources VB6 de mon "prédécesseur" jmfmarques. Tu y trouveras ce calcul tout fait (un tableau de contrôles répartis et à répartition paramétrée).
Je' l'avais fait en VB6, mais cela importe peu : ce sont les calculs arithmétiques (et ils sont les mêmes quel que soit le langage de développement) qui doivent t'intéresser.
Les valeurs (donc modifiables) arrêtées pour le paramétrages sont dans le module .bas
Je n'ai pas voulu faire une interface pour modifier ces valeurs, considérant qu'une telle grille correspondant au besoin d'UNE application, seul le développeur est concerné et définit donc directement ces paramètres. L'utilisateur n'a donc pas, lui, à subir une interface !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend