IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Tooltips dans un DataGrid [Trucs & Astuces]


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut [VB.NET] Tooltips dans un DataGrid
    Bonjour,
    je cherche a afficher le contenu d'une cellule d'un datagrid dans un tooltips quand je me deplace dessus.
    En fait j'ai un datagrid avec beaucoup de colonne et je dois afficher toutes les colonnes sur un seul et meme ecran (sans barre de scrolling). L'utilisateur pourra donc voir le contenu des cellules tronqués dans un ToolTip mais je n'arrive pas a programmer ca.
    Est-ce que quelqu'un a deja fait ce genre de chose?

  2. #2
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    regarde toujours ca peut etre intéressant la
    j'ai rien testé mais ca a l'air pas mal

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Merci de ta réponse, la solution proposée est effectivement pas mal, mais j'aurai aimé avoir ca en langage VB Net plutot qu'en Javascript, déjà parceque je ne sais pas inclure de Javascript dans mon code VB et en plus parceque je suis en stage et que mon maitre de stage veut du VB Net!!!

  4. #4
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Sinon je viens de trouver exactement ce qu'il faut !!!
    pourquoi j'y ai pas pensé avant ?

    regarde sur les WebControl, ils ont tous une propriété ToolTip !!
    CQFD !!

  5. #5
    Membre à l'essai
    Profil pro
    boss
    Inscrit en
    Avril 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : boss

    Informations forums :
    Inscription : Avril 2003
    Messages : 7
    Points : 10
    Points
    10
    Par défaut solution code behind
    Bonjour,

    j'ai eu le meme probleme que toi. Par contre, ce n'est pas facile à mettre en oeuvre.

    L'idée est de s'attacher à ItemDataBound de ton DataGrid et de changer le contenu des cellules en HyperLink et d'utiliser la propriete ToolTip.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        protected void ecranParticulier_DG_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem ||
            e.Item.ItemType == ListItemType.SelectedItem || e.Item.ItemType == ListItemType.EditItem)
          {
             HyperLink mHyper = new HyperLink();
             mHyper.Text = e.Item.Cells[index].Text;
             mHyper.ToolTip = e.Item.Cells[index+1].Text;
             e.Item.Cells[index].Text = "";
             e.Item.Cells[index].Controls.Add(mHyper);
          }
         }
    Desole c'est en C# mais l'idée est la meme en VB et pas tres différente au niveau syntaxe il me semble.

    En esperant que ça t'aide,

    A plus,

    Guigui.

  6. #6
    Membre à l'essai
    Profil pro
    boss
    Inscrit en
    Avril 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : boss

    Informations forums :
    Inscription : Avril 2003
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Re bonjour,

    désolé mais en effet, e.Item.Cells[index].ToolTip existe, ça peut devenir un peu plus simple du coup.

    J'ai pris mon cas pour une généralité, nous avions besoin de HyperLink dans le DataGrid...

    A plus,

    Guigui

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Bon, je suis debutant en VB Net et il va me falloir un peu de temps pour decortiquer vos propositions. Par contre, je suis sur une WinForm et pas sur une WebForm donc je sai pas si la solution que vous me proposez va convenir mais je vais tester!
    Moi pour l'instant je travail sur une solution du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     Private Sub DataGridConsignesEngins_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridConsignesEngins.MouseMove
            Dim TexteTooltip As String
            Dim hti As DataGrid.HitTestInfo
     
            hti = DataGridConsignesEngins.HitTest(e.X, e.Y)
            If hti.Type = DataGrid.HitTestType.Cell Then
                ' Initialisation du ToolTip
     
                monToolTip.AutoPopDelay = 5000
                monToolTip.InitialDelay = 100
                monToolTip.ReshowDelay = 1000
     
                monToolTip.Active = False
                TexteTooltip = "Informations complémentaires " & hti.Row & " " & hti.Column
                monToolTip.SetToolTip(Me.DataGridConsignesEngins, TexteTooltip)
                monToolTip.Active = True
            End If
        End Sub
    Mais je sais pas pourquoi ca ne marche pas!

    [Balise [Code] ajoutée par freegreg]
    [Pensez-y, vous-même, la prochaine fois. Merci]

  8. #8
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    ca a été traité le 30 Mars mais c'est du c# .... mais bon tu auras le principe au moins
    Est ce que tu connais :

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    L'exemple que tu me donne ressemble deja plus a ce que je cherche, mais sur un bouton ou n'importe quel autre control, j'arrive sans probleme a afficher mon tooltip. Seulement quand c'est sur un datagrid, ca change tout!
    Le code que j'ai fait fonctionne comme je le souhaite, mais seulement sur les entetes de lignes et de colonnes! En fait des que je bouge ma souris sur les cellules contenant les donnees proprement dites, le tooltip ne s'affiche plus (alors que lorsque je met un point d'arret, mon code est bien executé, comme pour les entetes, avec les bons paramètres).
    Je n'y comprend rien, c'est comme si les tooltips passait "derrière" la datagrid...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 52
    Points : 51
    Points
    51
    Par défaut
    Voila pour ceux que sa interesse voila comment faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub DataGridConsignesEngins_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridConsignesEngins.MouseMove
            Dim TexteTooltip As String
            Dim hti As DataGrid.HitTestInfo
     
            hti = DataGridConsignesEngins.HitTest(e.X, e.Y)
            If hti.Type = DataGrid.HitTestType.Cell And HitRow <> hti.Row Then
                ' Initialisation du ToolTip
                HitRow = hti.Row 'declarée au niveau de la classe
                monToolTip.AutoPopDelay = 5000
                monToolTip.InitialDelay = 500
                monToolTip.ReshowDelay = 1000
     
                If monToolTip.Active = True Then
                    monToolTip.Active = False
                End If
                TexteTooltip = "Informations complémentaires " & hti.Row & " " & hti.Column
                monToolTip.SetToolTip(Me.DataGridConsignesEngins, TexteTooltip)
                monToolTip.Active = True
            End If
        End Sub
    Le seul changement qu'il y avait a faire par rapport au code précedent est le test du chengement de ligne!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] keyPress dans un datagrid
    Par nkonito dans le forum Windows Forms
    Réponses: 11
    Dernier message: 31/12/2005, 21h29
  2. [VB.NET] Total dans un datagrid
    Par Golzinne dans le forum Windows Forms
    Réponses: 10
    Dernier message: 12/11/2005, 18h29
  3. [VB.NET] Linkbutton dans un DataGrid
    Par Sadneth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/10/2005, 10h57
  4. [VB.NET] Naviguer dans un DATAGRID a l'aide de 2 boutons
    Par stephane93fr dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2005, 12h39
  5. [VB.NET] Ajout dans un datagrid
    Par geget dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/12/2004, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo