begin process at 2012 02 10 00:57:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > LA PROPRIÉTÉ TAG

LA PROPRIÉTÉ TAG


 Information sur la source

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Source .NET ( DotNet ) Niveau :Débutant Date de création :20/08/2004 Vu :7 810

Auteur : dragon

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

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

  • 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 & "')")
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


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) RADIOBUTTON EN .NET SUR PLUSIEURS CONTENEURS DIFFÉRENTS
SUPPRIMER LES DOUBLONS D'UNE TABLE (VBA ACCESS)
Source avec Zip Source avec une capture Source .NET (Dotnet) PATRON ITERATEUR, TUTORIAL PATRON 4
Source avec Zip Source avec une capture Source .NET (Dotnet) [VB.NET] FORM AVEC DES SCROLLBARS AUTOMATIQUE
Source avec Zip Source .NET (Dotnet) PATRON OBSERVER, TUTORIAL PATRON 3

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

Commentaires et avis

Commentaire de frop01 le 20/08/2004 16:20:42

Very useful ;)

Commentaire de Lewiss le 20/08/2004 17:01:41

< !!! YOH

Super, je suis certain que ça va me servir à fond !

Merci beaucoup du tuyeau...

HOY !!! >

Commentaire de dragon le 20/08/2004 17:15:37

je savais bien que peux de monde l'utilisait
pour le tableau de TAG je suis tombé dessu sasn faire exprès lol (oki, le type object a donnée un assez bon indice quand même)

Commentaire de Lewiss le 20/08/2004 17:18:50

< !!! YOH

Hésites-surtout-pas à partager pareilles trouvailles l'ami !

J'ai pas encore testé, cependant ça me semble vachement utile.

Le Wiss...

HOY !!! >

Commentaire de dragon le 20/08/2004 20:26:51

inquiète toi pas, des trucs et astuce, c,est pas la première que je post, regarde mes sources

création de tableau de control (2 façons différentes)
création de tableau de mask editbox avec les mask qui fonctionne (j'ai du chercher en maudit ça, puisque le mask est pas coder)
pis ça continu longtemps encore, je dois être dasn ceux qui a poster le plus de trucs et astuces, sur c'est dernière temps, je fais un seul projet dont je peux pas dévoillé, donc je fais des astuce, vu que je peux pas sender tout le code

Commentaire de azerty25 le 22/08/2004 14:42:06

Bonne astuce, mais je la connaissait :p
Mais pas celle qui consiste à redimensionner, merci pour ton info ! Pour illustrer, je m'en sert des fois pour faire par exemple un explorateur de fichiers, les fichiers son représentés par un picturebox, et dans la propriété tag, je met le chemin complet du fichier qu'il représente, et apres, quand l'utilisateur clik, je fait shellexecute(API) ou shell picture1.tag, et sa lance le fichier ;)

Commentaire de dragon le 22/08/2004 16:38:26

tiens bonne idée, masi bon, j,ai déjà construit un explorer lol. Mais c,est intéressant voir ce que d,autre personnes ont pus faire avec :-)

Commentaire de doyen le 23/08/2004 15:55:37

Euh ???
J'ai pas tout bien compris au bout de code de ton ex . Quelqu'un pourrait-il pas l'étoffer un peu pour que je fasse 1 essai et que je comprenne .

Chui pas tout bon , comme vous voyez ...vous comprenez ; Merci de l'aide

;-)

Commentaire de doyen le 23/08/2004 15:55:49

Euh ???
J'ai pas tout bien compris au bout de code de ton ex . Quelqu'un pourrait-il pas l'étoffer un peu pour que je fasse 1 essai et que je comprenne .

Chui pas tout bon , comme vous voyez ...vous comprenez ; Merci de l'aide

;-)

Commentaire de dragon le 23/08/2004 17:18:23

la propriété tag peut-être redimmentionner avec redim ou redim preserve (pour conserver les donnée déjà existante)

ensuite, on peut y mettre n,importe quoi dedans pour garder en mémoire des valeurs

je suis en train d'améliorer le principe, mais ça plante encore. Si je réussi a faire ce que je veux faire avec la propriété Tag, ça sera encore plus efficace. Wait and See

Commentaire de acrcorp le 26/08/2004 20:17:16

Mes respects mon capitaine !
le redim des tag, je savais pas la chose possible.
Merci beaucoup our le tuyau ;-)

Commentaire de dragon le 26/08/2004 20:39:04

il y a aussi installer une structure dans les tag, mais c'est vraiment pas au point. ça marche, mais c'est plus rapide et plus facile avoir de tag(0) et de tag(1) lol

dommage, l'idée était bonne

Commentaire de surfzoid le 18/06/2007 17:22:05

Je connaissai déja car je l'avait pas mal exploité, mais ton explication est bien faite, j'ai donc mis 10/10 mais chose bizare car il n'y avait pas de note et ça donne quand même un 9.67/10 !!

Commentaire de Renfield le 18/06/2007 17:34:29 administrateur CS

un 9 et deux 10....

Commentaire de dragon le 18/06/2007 23:28:46

mais quand même idéallement est de passer une class par la propriété TAg ou encore mieux fabriquer un objet en orienté objet. Mais TAG sert souvent de raccourcie de code, quand on est trop paresseux pour faire une class

Commentaire de hbfocus le 11/11/2007 15:03:14

je confirme 10/10
merci, tu m'as été d'un grand secour, je crée dynamiquement des boutons qui renvoient justement des données et jusque là j'ai été contraint au système D

cette propriété très utile est malheureusement mal documentée
encore une fois bravo

Commentaire de BadoqueAlex le 04/09/2008 03:39:22 5/10

N'importe quoi cet exemple ... L'utilité d'un tag aurait été de créer une classe contenant des informations puis de dire :

sender.tag = new ClassData

Et puis TAG permet également de lier des controles. Essayez :

Dim MonCtrl as new Label
Button1.tag = MonCtrl

Button1.tag.text = "Test"
msgbox(button1.text)

et comme par miracle, il nous donne "Test" ... bref voila quoi. Mais gaspiller un TAG en y mettant un tableau ... pff autant lier un avec un PropertyGrid aussi ... -_-"

5/10

Commentaire de dragon le 04/09/2008 14:08:34

BadoqueAlex est ce que tu lis les commentaire, j'ai dit la même chose que toi 2 commentaire au dessus. La source date de 2004.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales