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

C# Discussion :

Combobox - text centré - DisplayMember


Sujet :

C#

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut Combobox - text centré - DisplayMember
    Bonjour,

    J'aimerais avoir un Combobox avec mon text centré. Pour cela, j'utilise la classe suivante :

    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
     
      internal class CenteredComboBox : ComboBox
      {
        internal CenteredComboBox()
        {
          this.DrawMode = DrawMode.OwnerDrawFixed;
          this.DropDownStyle = ComboBoxStyle.DropDownList;
        }
     
        protected override void OnDrawItem(DrawItemEventArgs e)
        {
          string l_sText = "";
     
          e.DrawBackground();
     
          if (e.Index >= 0)
            l_sText = base.Items[e.Index].ToString();
     
          TextRenderer.DrawText(e.Graphics, l_sText, e.Font, e.Bounds, e.ForeColor, TextFormatFlags.HorizontalCenter);
     
          e.DrawFocusRectangle();
        }
      }
    Mon texte est aligné. Par contre, j'utilise les DataSource pour remplir mon ComboBox, et pour afficher, j'utilise la propriété DisplayMember. Avec un ComboBox simple, ça marche, mais avec mon centeredComboBox, ça ne marche pas. Ca me met le ToString de mon objet contenu dans la ComboBox...

    Est-ce que quelqu'un a une idée pour résoudre ce problème?

    Merci d'avance...

  2. #2
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Il faut utiliser la fonction suivante pour affecter la valeur à l_sText :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      l_sText = this.GetItemText(this.Items[e.Index]);

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

Discussions similaires

  1. [ComboBox] Retourner une valeur différente de ComboBox.Text
    Par nicolas.pied dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/02/2007, 20h01
  2. [Jlabel] Comment creer un label avec deux textes centrés?
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 25/12/2006, 17h20
  3. menu et texte centré sous le lien
    Par yaka2 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 21/10/2006, 18h59
  4. Combobox.text qui ne se met pas à jour
    Par davels dans le forum Delphi
    Réponses: 6
    Dernier message: 21/08/2006, 10h29
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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