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 :

Retrouver des Components? (cas ToolTip)


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut Retrouver des Components? (cas ToolTip)
    Bonjour,

    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 void Global_Validating(object sender, EventArgs e)
    {
      if (((Control)sender).Text == "123456")
      {
        /*
            VERIFIER SI UN TOOLTIP EXISTE ET LE SUPPRIMER
            POUR NE PLUS AFFICHER LA BULLE D'INFORMATION
            DANS LE CAS:
            SAISIE ERRONE PUIS CORRECT
       */
      }
      else
      {
        ToolTip tip = new ToolTip();
        tip.SetToolTip((Control)sender, "information...";
        e.Cancel = true;
      }
    }

    Serait il possible de retrouver le tip créée dynamiquement après une sortie de la fonction?
    (en refaisant un Validating, pouvoir retrouver les informations rattachées à cette ToolTip)

    je vous remercie d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il ne faut pas créer un nouvel objet ToolTip à chaque fois que tu veux afficher un tooltip... normalement tu mets un seul ToolTip (appelons le toolTip1) sur ta form et tu utilises toujours le même, donc ton code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void Global_Validating(object sender, EventArgs e)
    {
      if (((Control)sender).Text == "123456")
      {
        toolTip1.SetToolTip((Control)sender, null);
      }
      else
      {
        toolTip1.SetToolTip((Control)sender, "information...");
        e.Cancel = true;
      }
    }
    Par contre, pour faire ce genre de choses (affichage d'une erreur), je te conseille de jeter un oeil au composant ErrorProvider

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    je vous remercie,

    le problème est que je crée à la volée...

    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
    /* CODE FAUX */
    private void Global_Validating(object sender, EventArgs e)
    {
      if (((Control)sender).Text == "123456")
      {
        if (Convert.ToBoolean(((Control)send).FindForm().Container.Components["tip"]))
        {
          ((ToolTip)((Control)send).FindForm().Container.Components["tip"]).SetToolTip((Control)sender, null);
        }
      }
      else
      {
        if (Convert.ToBoolean(((Control)send).FindForm().Container.Components["tip"]))
        {
          ToolTip tip = new ToolTip();
          tip.SetToolTip((Control)sender, "information...");
        }
        else
        {
          ((ToolTip)((Control)send).FindForm().Container.Components["tip"]).SetToolTip((Control)sender, "information...");
        }
        e.Cancel = true;
      }
    }
    Pour la vérification, ça ne fonctionne pas, on retrombe sur le problème de
    vérification d'existence
    Mais il faut aussi savoir (et comment?) où ce trouve tip.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu veux pas utiliser des variables intermédiaires ? parce que là ton code est illisible
    Et je comprends pas ce que tu fais avec ce Convert.ToBoolean
    Pour le composant ToolTip, tu le crées avec le designer, non ? dans ce cas pourquoi tu n'y accèdes pas directement par son nom ? tip.SetToolTip...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    le ToolTip n'est pas créé à l'aide du Designer

    ici, le Convert.ToBoolean() est faux,
    en réalité, il ne teste pas l'existence d'un élement, mais ... je ne connais pas encore la façon de tester ça, c'était grossièrement un moyen (dans l'exemple faux) de créer une condition de test d'existence.

    pour ce qui est des variables intermédiaires, je ne vois pas trop comment faire fonctioner la fonction encore mais effectivement, ça sera obligatoire pour rendre le code lisible

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    pourquoi ne pas simplement créer un champ tip dans ta Form :
    Et dans ta méthode, tu le crées s'il est null :
    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 void Global_Validating(object sender, EventArgs e)
    {
      TextBox tb = sender As TextBox;
      if (tb == null)
        return;
      if (tip == null)
        tip = new ToolTip();
     
      if (tb.Text == "123456")
      {
        tip.SetToolTip(tb, null);
      }
      else
      {
        tip.SetToolTip(tb, "information...");
        e.Cancel = true;
      }
    }

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    merci, effectivement ça fonctionne correctement
    et j'ai plus à chercher si tel ou tel élement existe.

    merci, c'est resolved

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

Discussions similaires

  1. Mettre des components dans les cases d'une JTreeTable
    Par chandler8692 dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 02/07/2007, 12h20
  2. [MS SQLSERVER 2000] Retrouver des lignes supprimées
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/05/2007, 15h23
  3. [swing] deplacer des components qui sont superposés
    Par systemf dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/11/2006, 16h29
  4. Réponses: 6
    Dernier message: 01/08/2006, 19h45
  5. [vb.net][String] retrouver des elements d'une chaine
    Par arnolem dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/01/2006, 12h31

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