La propriété tag

Contenu du snippet

peut de monde utilise cette propriété, pourtant elle est extrêment utile, surtout en .Net dans un environnement dynamique (genre un tableau de control créé par du code). Comme je veisn de le dire, elle se trouve dans n'imoprte quel control (label, button, listbox, ..., même les activeX, puisque la propriété Tag viens directement de Object, qui est à la base de tout les object graphique)

cette varaible est en fait n'importe quoi. Elle est pas utile au object, mais elle sert à l'utilisateur. Elle est du type Object ou aussi connu Variant sous VB6.0, donc ça peut-être un entier, un string, une date, ....

l'utilité première de cette propriété est de garder en mémoire des informations (clé dasn une base de donnée, position dans un tableau, des valeur important pour faire des requête, etc ....)

la raison de cette astuce est justement de faire connaitre ses possibilités.

sauf que très souvent, une seule valeur est pas assez, la propriété Tag peut-être redimentionner comme on le veux, soit par un redim ou un redim preserve, pour conserver ses données intactes.

Voici un exemple de son utilisation. La propriété va concerver sa position dans un tableau et un id pour une requête qui pourra être faite plus tard. Ceci est un bout de code, mais c'est assez pour bien comprend l'utilité de Tag

Source / Exemple :


For i = 0 To UBound(choix)
            Me.checkBox1(i) = New System.Windows.Forms.CheckBox

            Me.checkBox1(i).Location = New System.Drawing.Point(10, 30 + i * 20)
            Me.checkBox1(i).Size = New System.Drawing.Size(200, 20)
            Me.checkBox1(i).Text = choix(i).un
            Me.checkBox1(i).Checked = CBool(choix(i).Quatre)
            ReDim Me.checkBox1(i).Tag(1)
            Me.checkBox1(i).Tag(0) = i
            Me.checkBox1(i).Tag(1) = choix(i).Cinq
            Me.GroupBox1.Controls.Add(Me.checkBox1(i))
            AddHandler checkBox1(i).CheckedChanged, New EventHandler(AddressOf checked)
next i

'Et dans la fonction checked, ça va donner ceci
'l'index quiest stocker dans TAG(0) va servir a mettre d'autre composant visible ou non

    Private Sub checked(ByVal sender As System.Object, ByVal e As System.EventArgs)
        debut(sender.tag(0)).Visible = sender.checked
        fin(sender.tag(0)).Visible = sender.checked
        de(sender.tag(0)).Visible = sender.checked
        a(sender.tag(0)).Visible = sender.checked
    End Sub

'Et dans une autre fonction, je pourrais utiliser l'id qui se trouve dans tag(1)
basedonnee.ouvertureRST("insert into table values(" & sender.tag(1) & ",'" & de(sender.tag(0)).text & "')")

Conclusion :


en gros les utilités sont infini
c'est seulement inconnu de la plus par du monde, amis extrêment pratique dans certain code

comme je l'ai dit, je m'en sert surtout pour stocker en mémoire des ID et des positions dans des environnements dynamiques.

c'est sur si vous créer votre propre control, mieux vaut faire vos propre viraible, mais pour les control déjà existant, (surtout les boutons ou autre control qui déclenche un évênement) c'est extrêment pratique et ça évite très souvent de faire u tableau en parallèle pour storer les informations

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.