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

VB.NET Discussion :

Afficher des tooltips lors d'un click d'un bouton


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut Afficher des tooltips lors d'un click d'un bouton
    Bonjour à tous,
    je développe une application en vb.net en ce moment. J'ai une form principale, composé de plusieurs userControl.
    J'aimerais que l'utilisateur, lorsque perdu, clique sur un bouton "help". Ce bouton help se situe dans ma form principale. Lorsque cliqué, le bouton permet l'Affichage des tooltips de tous les contrôles que l'utilisateur voit(bouton, textbox, combobox, grille....).
    est-ce possible? auriez-vous une idéee de la façon "propre" de le faire?
    Merci pour les conseils.
    Shirya

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,

    La propriété ToolTip n'est pas accessible pour tous les contrôles (elle n'y est pas pour les boutons par exemple).

    Une façon de faire consisterait à mettre un composant StatusStrip en bas de ta form et à renseigner un texte en exploitant l'event MouseOver sur chacun de tes contrôles concernés par le tooltip.

    Selon le nombre de contrôles sur ta form, il te suffit de fonctionner avec des If en cascade sinon, une procédure générique qui parcours les contrôles de ta form (For Each) et qui lit une table dans laquelle se trouve le nom de ton contrôle, et le texte du tooltip.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 201
    Par défaut
    il est possible de mettre des tooltips sur tous les controles, meme sur les boutons
    (la propriété tooltip n'existe pas en fait, c'est l'objet tooltip qui fait croire au propertygrid qu'elle existe)

    un objet tooltip ne peut afficher qu'un tooltip à la fois, mais j'ai réussi à trouver une solution quand meme


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
           For Each ctrl As System.Windows.Forms.Control In Me.Controls
                If Me.ToolTip1.GetToolTip(ctrl) = "" Then Continue For 
     
                Dim t As New ToolTip
                t.SetToolTip(ctrl, Me.ToolTip1.GetToolTip(ctrl))
                t.Show(Me.ToolTip1.GetToolTip(ctrl), ctrl, 2000) ' 2000 : nombre de millisecondes
            Next
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    Merci pour les réponses,
    MAis si ma form est aussi composé de usercontrol. Comment faire pour afficher les toolTips dans mon contrôle? récursivité?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Ton control parent est la form, à cette form est associée une liste de controls.
    Le for each montré par Sperot51 suffit à ce niveau là si les tooltips sont directement issus de controls de cette liste.

    Si par contre tu utilises des panel ou tablelayoutpanel ou groupbox ou autres controls de type contenant, le recursif s'impose dans une méthode qui prendrait le control en paramètre et qui testerait la propriété HasChild.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 477
    Par défaut
    Voici ci-dessous une explication détaillé du code de sperot51 qu'il ma fournit sous MP, car je ne comprenais pas l'ensemble du code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For Each ctrl As System.Windows.Forms.Control In Me.Controls ' parcours de tous les controles de la fenetre
                If Me.ToolTip1.GetToolTip(ctrl) = "" Then Continue For  'si aucun tooltip défini, on passe au suivant
                If not typeof ctrl Is Textbox then continue for ' si le controle actuel n'est pas un textbox, on passe au suivant
                If ctrl.text <> "" then continue for ' si le texte n'est pas vide on passe au suivant
     
    ' tous les autres textbox afficheront le tool tip
                Dim t As New ToolTip
                t.SetToolTip(ctrl, Me.ToolTip1.GetToolTip(ctrl))
                t.Show(Me.ToolTip1.GetToolTip(ctrl), ctrl, 2000) ' 2000 : nombre de millisecondes
            Next

    1. Déssiner un tooltip sur votre form (ToolTip1)
    Ce ToolTip1 sera utiliser pour affecter le texte à afficher pour chaque controles. A l'aide de la proprité "ToolTip sur ToolTip1".

    2. Il vous est possible de personnalisé le New ToolTip
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    t.ToolTipIcon = ToolTipIcon.Warning
    t.ToolTipTitle = "Procédure interompue"
    Ou encore sa position par rapport à son controle respectif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t.Show(Me.ToolTip1.GetToolTip(ctrl), ctrl, y:=15, x:=0, duration:=2000) ' 2000 : nombre de millisecondes
    3.Si les controles se trouve dans des conteneurs.
    Panel, GrougBox, il faut modifier ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctrl As System.Windows.Forms.Control In Me.Controls ' parcours de tous les controles de la fenetre
    Par exemple remplacer Me.Controls par :

    Et pour conclure, je remecie tout ceux qui ont participé à ce post.

Discussions similaires

  1. Ne pas afficher le menu lors d'un click droit
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2013, 10h59
  2. Afficher une image lors d'un click sur un lien
    Par hachdotnet dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/04/2009, 15h20
  3. Réponses: 2
    Dernier message: 26/11/2008, 09h46
  4. afficher des resultats lors du passage de la souris sur un point du graphe
    Par speedy_g dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 05/03/2008, 10h44
  5. Afficher un menu lors d'un click droit sur l'image
    Par bhahmed dans le forum C++Builder
    Réponses: 17
    Dernier message: 22/09/2006, 10h54

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