Créé un object

Résolu
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 4 mai 2006 à 18:34
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 5 mai 2006 à 08:51
Salut à tous

Voila j'ai un problème, de débutant, que j'arrivé a bidouiller en VB6 et la aujourd'hui en VB.net, j' y suis confronté.

Je veux créé un object sur mon formulaire avec du code.

exemple créé un bouton avec du code.

j'ai ecrie ça :

Public
Class Form1



Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

Dim B
As
New Button
B.Name =
"btnOK"
B.BackColor = Color.Blue
B.Visible =
True
B.Text =
"OK"
End
Sub


End
Class

la j'ai créé mon bouton virtuellement , je pense
mais comment le mettre visible sur le form1 (pour pouvoir y clické dessus)

merci de votre aide

MANUANTIBES [:p]

5 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
4 mai 2006 à 19:01
salut,

il faut l'ajouter à la collection de contrôles du formulaire.
Me.Controls.Add(B)

[ Dalida ]<hr>
pensez à indiquer le langage utilisé et sa version !
3
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
4 mai 2006 à 19:01
Regarde bien le code généré par le designer de form dans la code de ta form ... tu y trouveras ton bonheur
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
4 mai 2006 à 20:23
Merci Dalida

suite de mon projet
je pense que tu vas savoir toi Dalida

je veux créé plusieur bouton en chaine

voici ce que j'ai fais ca marche mais je souhaite reduire le nombre de ligne



Dim B1, B2, B3, B4, B5
As
New Button



Dim x
As
Integer
Dim pos1
As
Integer
For x = 1
To 5

Select
Case x

Case 1
B1.Name =
"btnOK" & x
B1.BackColor = Color.Blue
B1.Visible =
True
B1.Text =
"OK" & x
B1.Top = pos1

Me.Controls.Add(B1)

Case 2
B2.Name =
"btnOK" & x
B2.BackColor = Color.Blue
B2.Visible =
True
B2.Text =
"OK" & x
B2.Top = pos1

Me.Controls.Add(B2)

Case 3
B3.Name =
"btnOK" & x
B3.BackColor = Color.Blue
B3.Visible =
True
B3.Text =
"OK" & x
B3.Top = pos1

Me.Controls.Add(B3)

Case 4
B4.Name =
"btnOK" & x
B4.BackColor = Color.Blue
B4.Visible =
True
B4.Text =
"OK" & x
B4.Top = pos1

Me.Controls.Add(B4)

Case 5
B5.Name =
"btnOK" & x
B5.BackColor = Color.Blue
B5.Visible =
True
B5.Text =
"OK" & x
B5.Top = pos1

Me.Controls.Add(B5)

End
Select
pos1 = pos1 + 30

Next x


A+

MANUANTIBES [:p]
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
4 mai 2006 à 21:41
re,
>"je pense que tu vas savoir toi Dalida"
ah ! mort de rire !!!
je crois que tu me fais beaucoup de fleurs pour trois fois rien.
tout dabord, tu aurais du suivre le conseil de crenaud76 qui était bien plus enrichissant que ma réponse prédigérée !
d'autre part crenaud76 est certainement bien plus compétent car beaucoup plus expérimenté que nous deux réunis...

bon, trève de galanterie et revenons à nos moutons.

as-tu vraiment besoin d'une boucle ?
- pour seulement 5 items on peut s'en passer, en plus on fait disparaitre le Select Case qui ne doit pas être un opérateur des plus rapides.

quelles sont les propriétés à définir ?
- le nom et le texte qui sont créés à partir de l'index
- la position (mieux vaut utiliser la propriété Location, de toute façon une modification de Top entrainera la modification de Location, autant le faire direct)
(Visible = True par défaut donc inutile)
(la couleur est toujours la même)
(à ta place je définirais la propriété Size)

je te conseille donc d'écrire une fonction qui reprendra la partie redondante du code à savoir Déclaration, Instanciation et Initialisation du Button et te renverra le Button ainsi créé.
en paramètres tu passeras les valeurs des propriétés à définir (l'index et la position).

tu devrais obtenir au final un code ressemblant à ceci :

Me.Controls.Add(BuildButton(0, New Point(0,0)))
Me.Controls.Add(BuildButton(1, New Point(0,30)))
Me.Controls.Add(BuildButton(2, New Point(0,60)))
Me.Controls.Add(BuildButton(3, New Point(0,90)))
Me.Controls.Add(BuildButton(4, New Point(0,120)))
'si tu préfères la boucle :
'For index As Integer = 0 To 4
' Me.Controls.Add(BuildButton(index, New Point(0,CInt(index*30))))
'Next index
Private Function BuildButton(index as Integer, pos As Point) As Button

'déclarer, instancier et initialiser le nouveau Button puis le retourner
'Return ...

End Function

(>crenaud76 : as-tu finalement sombré du côté C de la force ? moi, suis dépassé... )

[ Dalida ]
<HR>


pensez à indiquer le langage utilisé et sa version !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
5 mai 2006 à 08:51
Merci Dalida (je pensais que tu etais une femme, mais peut etre que je me trompe ....)

J'ai compris se que voulais dire crenaud76 , mais dans mon tous premier message sur mon formulaire il n'y avait pas de bouton donc il n'etait pas incrit de code sur j'ajout de code dans mon formulaire.

J'ai fais le teste apres avec un bouton sur mon formulaire et du coup je vois bien le fameux

'btnAfficherDate
'
Me.btnOK.Location =
New System.Drawing.Point(82, 54)

Me.btnOK.Name =
"btnOk1"
Me.btnOK.Size =
New System.Drawing.Size(75, 23)

Me.btnOK.TabIndex = 0

Me.btnOK.Text =
"OK"
'Form1

Me.Controls.Add(Me.btnOK)

Sur ce
j'ai trouvé aussi cette page qui explique bien se que je veux faire ajouter un control par le code ....
http://plasserre.developpez.com/v8-3.htm


A+

MANUANTIBES [:p]
0
Rejoignez-nous