Label

bruno067 Messages postés 6 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 20 juin 2012 - 9 nov. 2007 à 10:13
bruno067 Messages postés 6 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 20 juin 2012 - 9 nov. 2007 à 15:03
Bonjour,
je debute avec Visual basic 2005 edition express, et je souhaite construire un tableau de label, 21 environ qui apparait sur une fenêtre Forms. je souhaite activer un évenement pour chaque Label lors d'un click.
j'ai déja fait une petite procédure, qui n'affiche que le premier label, les autres n'apparaisse pas sur la Forms., merci pour votre aide et votre comprehension....

Merci

Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim i As Integer
    Dim j As Integer
    Dim label(20, 20) As System.Windows.Forms.Label

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

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        For j = 0 To 2
            For i = 0 To 6
                label(i, j) = New System.Windows.Forms.Label
                label(i, j).BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
                label(i, j).Location = New System.Drawing.Point(i, j)
                label(i, j).Name = "1 er label"
                label(i, j).Size = New System.Drawing.Size(40, 30)
                label(i, j).Tag = 1

                Controls.Add(label(i, j))

            Next i
        Next j

    End Sub

End Class

2 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
9 nov. 2007 à 11:14
Salut,

   c'est normal que tu ne vois pas tous tes labels. ils font (40,30) pixels et tu leurs demandent de s'afficher en coordonnées (0,0) (1,0),(2,0) donc tu décale tes labels de 1 pixels en 1 pixels

   il faut que tu les décales d'au moins leurs largeurs et hauteurs

   le bout de code cei-dessous reprend ton code en ajoutant un point. les labels que je crée ne font que 10 par 10
   après avoir ajouter le premier point j'augmente la valeur X du point de +20 pour décalé mes labels 
   Au final les labels apparaissent tous à la suite décalé de 10 pixels entre eux

   A adapter à ton problème

   

Dim

pos1
As Point

Private

Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Clickpos1 =

New Point(0, 0)

For j = 0
To 2

   For i = 0 To 6   label(i, j) New System.Windows.Forms.Label   label(i, j).BorderStyle System.Windows.Forms.BorderStyle.FixedSingle

   label(i, j).Location = pos1
   label(i, j).Name "1 er label"   label(i, j).Size

New System.Drawing.Size(10, 10)   label(i, j).Tag = 1

   Controls.Add(label(i, j))

   pos1 =

New Point(pos1.X + 20, 0)

   Next i

Next j 

End
Sub

@+
LIM
0
bruno067 Messages postés 6 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 20 juin 2012
9 nov. 2007 à 15:03
Salut,

Merci bien de t'on aide.
Je pensais que les variable i et j dans label ( i, j) permettais d'identifier le label par des
coordonnées.
J'ai supprimé la variable j , ce qui donne 
label(i,).Location = pos1

La variable i me permet par la suite d'indexé n'importe quelle label.

Merci A+
0
Rejoignez-nous