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 :

DrawItem Problème d'affichage


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut DrawItem Problème d'affichage
    Bonjour à tous,

    voilà je rencontre actuellement un problème lorsque je souhaites réaliser l'override de la fonction OwnerDraw pour une combobox...

    Le DrawMode de la combobox est fixé à OwnerDrawFixed.


    Voici la fonction d'override :

    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 comboBoxActivites_DrawItem(object sender, DrawItemEventArgs e)
            {
                Graphics g = e.Graphics;
     
                DisplayActivite act = (DisplayActivite)(comboBoxActivites.Items[e.Index]);
                if (!act.Selectionnable)
                {
                    g.DrawString(act.DisplayName, Font, new SolidBrush(Color.Red), e.Bounds);
                }
                else
                {
                    e.DrawBackground();
                    g.DrawString(act.DisplayName, Font, new SolidBrush(ForeColor), e.Bounds);
                }
            }
    Mon problème est le suivant :

    Lorsque je parcourt le dropdown en sélectionnant l'ascenseur et e le faisant monter ou descendre pour parcourir la liste, j'ai ce bug d'affichage (voir image en pièce jointe) :

    Par contre, si je la parcours avec la roulette, ou en cliquant dans la scrolling bar ou encore en cliquant sur le bouton monter ou descendre, je n'ai aucun problème, ca n'apparait uniquement qu'en faisant monter ou descendre l'ascenseur avec la souris ...

    J'ai essayer plusieurs chose :
    - doublebuffering de la combobox
    - invalider la combobox afin qu'elle se redessine

    Mais rien n'y fait ...

    Le seul moyen pour que cela ne se produise pas, c'est de modifier le mode de compatibilité de l'application pour Désactiver la composition du bureau, mais cela ne m'arrange pas du tout car cela désactive l'Aero de la machine pendant l'éxecution du programme.

    Avez vous déjà été confronté à ce problème ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Par défaut
    Tu as essayé simplement de changer le drawMode?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBoxActivites.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
    Après, tu peux aussi créer ta propre extention de ComboBox et y rajouter ton code directement dedans.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    J'ai essayé oui mais cela n'a rien changé ...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Par défaut
    Je viens de tester le code et il fonctionne correctement dans le cas que tu cite.

    Est-ce que par hazard il y aurait d'autres parties du code qui pourraient influer?
    Est-ce qu'il y a d'autres composants custom et/ou des règles de refresh spécifiques?

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Que se passe-t'il en remplaçant Font par comboBoxActivites.Font ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Merci pour vos réponses, alors dans l'ordre :

    Demonia : Non je n'ai que cette fonction la qui peut influencer l'affichage et aucun refresh spécifique, attention le problème n'apparait que quand on bouge l'ascenseur avec la souris (click gauche enfoncé sur l ascenseur et le bouger en bas et haut), avec la roulette etc y a pas de problèmes ...

    Graffito : Je viens de tester et cela ne change malheureusement rien :/


    Voici le post concernant la désactivation d'aero : http://stackoverflow.com/questions/4...g-on-windows-7

    Malheureusement, cela ne m'arrange pas ...

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

Discussions similaires

  1. Problème d'affichage
    Par mustang-gx dans le forum Bases de données
    Réponses: 8
    Dernier message: 26/01/2005, 22h54
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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