Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3114 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [WinForm] ComboBox bugguée ?!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WinForm] ComboBox bugguée ?!

n°1261984
_Mose_
Lonesome coder
Posté le 08-12-2005 à 18:06:46  profilanswer
 

J'utilise un ContextMenu, avec un contenu perso : il contient mes propres MenuItem.
Ce qui m'intéresse c'est de les redessiner moi-même, j'ai donc ajouté this.OwnerDraw = true; dans le constructeur de mes MenuItems.
 
Et là incroyable !!  Ca marche très bien pour le ListView, pour le ListBox, mais pour le ComboBox, l'appel à OnDrawItem n'est jamais fait... Ca fait un beau menu vide. Qqn connait ce bug ? Et le moyen de le contourner ?

Code :
  1. public Form()
  2. {
  3. InitializeComponent();
  4. // création du menu
  5. ContextMenu menu = new ContextMenu();
  6. menu.MenuItems.Add(new MyMenuItem("un" ));
  7. menu.MenuItems.Add(new MyMenuItem("deux" ));
  8. menu.MenuItems.Add(new MyMenuItem("trois" ));
  9. // association du menu avec les contrôles
  10. this.listView1.ContextMenu = menu;
  11. this.listBox1.ContextMenu = menu;
  12. this.comboBox1.ContextMenu = menu;
  13. }
  14. // mes MenuItems perso
  15. public class MyMenuItem : MenuItem
  16. {
  17. public MyMenuItem(string caption) : base(caption)
  18. {
  19.  // pour forcer le dessin à la main
  20.  this.OwnerDraw = true;
  21. }
  22. protected override void OnMeasureItem(MeasureItemEventArgs e)
  23. {
  24.  base.OnMeasureItem (e);
  25.  // indique la taille de l'item dans le menu
  26.  e.ItemWidth = 60;
  27.  e.ItemHeight = 20;
  28. }
  29. protected override void OnDrawItem(DrawItemEventArgs e)
  30. {
  31.  base.OnDrawItem (e);
  32.  // dessin du texte et autre fioritures
  33.  e.DrawBackground();
  34.  e.DrawFocusRectangle();
  35.  using(Brush brush = new System.Drawing.SolidBrush(System.Drawing.Color.Black))
  36.   e.Graphics.DrawString(this.Text, ((ContextMenu)this.Parent).SourceControl.Font, brush, e.Bounds);
  37. }
  38. }



---------------
Tout est normal, suffit de comprendre pourquoi.
mood
Publicité
Posté le 08-12-2005 à 18:06:46  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [WinForm] ComboBox bugguée ?!

 

Sujets relatifs
Excel combobox/Listbox affichage/liste/selectionMX 2004 - ComboBox inactif dans clips imbriqués
Combobox ajouter des valeurs [VBA ACCESS]combobox
combobox + couleuraffichage dans un combobox
Problème ComboBoxcréer un userform et créer autant de combobox qu'il y a de feuille
couleur et comboboxa propos des combobox
Plus de sujets relatifs à : [WinForm] ComboBox bugguée ?!


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)