Comment changer l’apparence d’un MenuSsortingp

J’ajoute un MenuSsortingp dans mon application et ajoute ManagerRenderMode en Render Mode . Le problème est avec l’apparence, regardez les abats. Regardez ces deux photos, je veux changer la bordure blanche des sous-menus en transparent, ce rectangle bleu qui apparaît en gris pour le menu et pour le sous-menu en gris foncé (et sa bordure bleu foncé) et la bordure blanche du menu quand est sélectionné. Comment puis-je faire ceci ?

BackColor est: 36; 36; 36 36; 36; 36 36; 36; 36 et ForeColor est LightGray .

entrez la description de l'image ici

entrez la description de l'image ici

J’ai réussi à changer le rectangle bleu, le rectangle blanc lorsque l’option est sélectionnée, le rectangle bleu lorsque je sélectionne une option de sous-menus, mais je ne sais pas comment modifier la white border , aidez-moi s’il vous plaît.

Voici le code jusqu’à présent …

  Color culoare = Color.FromArgb(20, 20, 20); Color culoare1 = Color.FromArgb(36, 36, 36); public override Color MenuItemSelected { get { return culoare; } } public override Color MenuItemBorder { get { return culoare; } } public override Color MenuItemSelectedGradientBegin { get { return culoare; } } public override Color MenuItemSelectedGradientEnd { get { return culoare; } } public override Color MenuItemPressedGradientBegin { get { return culoare; } } public override Color MenuItemPressedGradientEnd { get { return culoare; } } public override Color MenuBorder { get { return culoare; } } 

Vous pouvez le faire en créant votre propre ColorTable et en remplaçant les propriétés pour lesquelles vous souhaitez modifier la couleur:

 public class TestColorTable : ProfessionalColorTable { public override Color MenuItemSelected { get { return Color.Red; } } public override Color MenuBorder //added for changing the menu border { get { return Color.Green; } } } 

Vous l’utiliseriez comme ceci:

 private void Form1_Load(object sender, EventArgs e) { menuSsortingp1.Renderer = new ToolSsortingpProfessionalRenderer(new TestColorTable()); } 

Votre approche est incorrecte. Vous ne stylisez pas les menus et les bandes d’outils à l’aide de prevolor / backcolor.

Jetez un coup d’oeil à ToolSsortingpProfessionalRenderer

Exemple d’utilisation de cette

 public class MyToolSsortingpRenderer : ToolSsortingpProfessionalRenderer { /* override styling/drawing here */ } MenuSsortingp ssortingp = new MenuSsortingp(); ssortingp.Renderer = new MyToolSsortingpRenderer(); //this will set RenderMode to "Custom" 

Pensez à utiliser cet exemple sur CodeProject en tant que recherche.

Mieux encore, VBForums en a des tonnes, déjà implémentées (dans les styles habituels Luna, Office, Windows, Visual Studio!)

http://www.vbforums.com/showthread.php?596563-100-Customizable-MenuSsortingp-ToolSsortingp-StatusSsortingp-including-common-presets

Si vous voulez simplement changer les couleurs … utilisez la réponse de Pondidum! Cela implique moins de travail!