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 :

tooltip dans un picturebox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut tooltip dans un picturebox
    salut,
    je voudrais savoir comment je peux faire un tooltip dans une picturebox qui contient deux ellipses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    g.DrawEllipse(new Pen(Color.Red, 2.0f), 50, 68, 30, 30);
                g.DrawEllipse(new Pen(Color.Red, 2.0f), 90, 78, 10, 10);
    Merci d'avance

  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
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    si tu veux faire un tooltip spécifique quand tu passes sur tes cercles, tu es obligé de définir 1 region par cercle, et ensuite, dans le mousemove de la picturebox, il faut que tu regardes si la position du pointeur (de la souris en général) se trouve à l'intérieur de ces deux régions (methode : isVisible() de la région)...

    Si c'est le cas, tu peux ensuite faire le show() du tooltip

    voilà
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    bonsoir,
    merci bien pour votre reponse c ca exactement que j'ai besoin mais mon probleme que j'ai pa su qu'est c qu'il faut faire exactement dans le mousemove ainsi le tooltip.show() ou je dois l'appler

    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
    private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                Region reg = new Region(gp);
                if (reg.IsVisible(new Point(e.X, e.Y)))
                   //
                else
                  //
     
            }
            public Form1()
            {
                InitializeComponent();
                this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
                g = this.CreateGraphics();
                gp = new GraphicsPath();
            }
    Merci d'avance pour l'aide

  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
    Points : 5 195
    Points
    5 195
    Par défaut
    les regions ne doivent pas etre locale à ton bloc fonctionnel, mais doivent etre une liste, ou tableau, ou ce que tu veux, en variable membre de ta classe !

    Pour les créer, tu peux utiliser un GraphicsPath , ce qui est une bonne idée (enfin, si c pour faire un rectangle, ya un constructeur de GraphicsPath qui prend en argument un rectangle.... Une fois que tes regions sont définis, dans le mouseMove, tu feras un "bete",

    if Region[x].IsVisible(e.Location) == true
    Then ==> Tu es dans la zone définie par la region[x], donc, tu as ton info.

    voilà
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    bonjour,
    merci bien pour votre réponse mais malheureusement je suis bloqué au niveau de la définition de région
    voila mon code et svp aider moi
    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;
    using System.Drawing.Drawing2D;
    namespace testtoolltipp
    {
        public partial class Form1 : Form
        {
            GraphicsPath gp;
            string mes = "Move to the big I!";
            Region[] reg = new Region[2];
            ToolTip tool = new ToolTip();
            public Form1()
            {
                InitializeComponent();
                this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
                Bitmap img = new Bitmap(500, 500);
                System.Drawing.Graphics g = Graphics.FromImage(img);
                pictureBox1.Image = img;
                int[] tab ={ 50, 90 };
                int[] tab1 ={ 68, 78 };
                int[] tab2 ={ 30, 10 };
                int[] tab3 ={ 30, 10 };
     
                for (int i = 0; i < 2; i++)
                {
     
                    g.DrawEllipse(new Pen(Color.Red, 2.0f), tab[i], tab1[i], tab2[i], tab3[i]);
     
                }
    //////////remplisage de tableau region  me manque
                gp = new GraphicsPath();
     
            }
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                for (int j = 0; j < 2; j++)
                {
                    if (reg[j].IsVisible(e.Location) == true)
                        tool.Show("tex", this);
     
                }
            }
     
        }
    }
    Merci d'avance

  6. #6
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    Voici un code propre qui te montre exactement ce que tu veux et surtout, comment le faire vraiment "proprement"
    Fichiers attachés Fichiers attachés
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    merci bcp

  8. #8
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    et tu vois, c'était vraiment "pas" compliqué (enfin, moi, ca m'a pris 8 minutes pour le faire )

    Par contre, si la question est résolue, pense à mettre résolu (en bas de la page)
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

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

Discussions similaires

  1. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  2. Rendre le fond transparent dans une picturebox
    Par fun31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2005, 18h17
  3. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15
  4. [VB.NET] Tooltips dans un DataGrid
    Par seemax dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/04/2004, 14h16
  5. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 17h55

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