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 :

[.NET 2.0] Ajout de control dans un tooltip


Sujet :

Windows Forms

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut [.NET 2.0] Ajout de control dans un tooltip
    Bonjour,

    je suis à la recherche d'information concernant les tooltip ou les baloons.

    J'aimerai dans une application windows (VSTO) ajouter dans un ToolTip un bouton.
    Ce bouton ouvrirait une nouvelle fenêtre avec des informations.
    Pour le moment, le tooltip contient du texte (informations de l'item sélectionné).
    Mais, on aimerait que pour l'une des informations (donc contenue dans le tooltip), il soit possible (en cliquant sur une image, un lien ou un bouton) d'ouvrir une nouvelle fenêtre.

    D'ou ma question, est il possible d'ajouter des control windows dans un tooltip ?

    Merci

    Fix

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    techniquement, c'est envisageable, mais c'est une véritable usine à gaz

    Après, il faut savoir que le tooltip disparait quand tu quittes le contrôle avec lequel il est associé, donc, en théorie, cliquer sur un bouton qui serait dedans serait quasiment "impossible"

    Je dirais que ce que tu veux ressemble plutot à un espèce de menu contextuel "customisable" qui se comporterait comme un tooltip ?

    Genre ? non ?

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    sinon, une autre solution serait de te créer ta propre classe ToolTip qui n'hériterait pas du tooltip et de faire que dans la fonction Setcontrol() que tu aurais crée, le tooltip s'abonnerait aux event OnMouseEnter et OnMouseLeave pour se déclencher et à ce moment là, afficherait sa fenetre qui pourrait etre un userControl ... Reste après à gérer le fadeIn, FadeOut, etc...

    Ca serait pas super compliqué à faire 1 journée de Dev

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Voici un lien qui devrait "résoudre" partiellement comment faire


    Custom Popup

    Suffit d'adapter pour que cela se comporte en toolTip

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    CADEAU

    Et voici le code d'une classe gérant le tooltip comme tu l'aimerais (ou pas loin à priori) (dérivé du lien précédent)
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    public partial class MyCustToolTip : UserControl
        {
            private Dictionary<Control, Control> data = new Dictionary<Control, Control>();
            private ToolStripDropDown popup;
     
            public MyCustToolTip()
            {
                InitializeComponent();
                popup = new ToolStripDropDown();
                popup.Margin = Padding.Empty;
                popup.Padding = Padding.Empty;
            }
     
            public void SetControl(Control cont, Control toolTipControl)
            {
                if (!data.ContainsKey(cont))
                {
                    data.Add(cont, toolTipControl);
                    RegisterControl(cont);
                }
     
            }
     
            private void RegisterControl(Control cont)
            {
                cont.MouseEnter += new EventHandler(cont_MouseEnter);
                cont.MouseLeave += new EventHandler(cont_MouseLeave);
            }
     
            void cont_MouseLeave(object sender, EventArgs e)
            {
                Trace.WriteLine("Mouse Leave");
                //displayer.Hide();
                popup.Hide();
            }
     
            void cont_MouseEnter(object sender, EventArgs e)
            {
                Control cont = (Control)sender;
                if (data.ContainsKey(cont))
                {
                    popup.Items.Clear();
                    ToolStripControlHost host = new ToolStripControlHost(data[cont]);
                    host.Margin = Padding.Empty;
                    host.Padding = Padding.Empty;
                    data[cont].Visible = true;
                    popup.Items.Add(host);
     
                    popup.Show(cont, cont.Width / 2, cont.Height + 2);
                }
            }
        }

    Et pour l'appeler, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public Form1()
            {
                InitializeComponent();
                nico.SetControl(button1, new ToolTipDisplayer());
                nico.SetControl(button2, new TextBox());
                nico.SetControl(button3, new PictureBox());
                Controls.Add(nico);
                nico.Visible = false;
            }
    ou ToolTipDisplayer est un controle à moi

    (et nico est déclaré comme private MyCustToolTip


    Voilà, on ne devrait plus être très loin du résultat escompté maintenant

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    Woaw super TheMonz

    Merci bcp.

    Bon vu le temps que cela m'aurait pris, j'ai envisagé une autre solution, mais ce que tu m'as donné comme info est super, je vais pouvoir tester tout cela en dehors des heures

    Merci

    Fix

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/04/2007, 11h25
  2. [C# 2.0][Ajouter des Controls dans un panel
    Par the big ben 5 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/11/2006, 09h07
  3. Ajout de controls dans sous formulaire via VB
    Par sunvialley dans le forum IHM
    Réponses: 3
    Dernier message: 07/06/2006, 11h15
  4. ajouter des control dans une onglet de sstab sous VB6
    Par aymane_farissi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/09/2005, 13h44
  5. [VC++ 6.0] ajout de control dans l'IDE
    Par gargle dans le forum MFC
    Réponses: 7
    Dernier message: 25/08/2005, 09h33

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