Changement WinForms bouton couleur de surbrillance
J'ai trouvé cette page, qui décrit comment modifier le rendu pour un MenuStrip et de ses éléments.
Je veux l'utiliser, mais le problème est que la couleur de surbrillance lorsque vous passez la souris sur un bouton ne correspond pas.
Est-il possible de modifier la couleur de surbrillance du bleu au jaune? J'ai essayé d'utiliser le MouseHover et MouseLeave, mais pour une raison qu'ils sont vraiment très lent, et ils changent le bouton pour une couleur unie, ce qui est mauvais, mais laisse une bordure sur le bord de la touche qui ne change pas.
Dans le concepteur:
this.ButtonName.MouseHover += new System.EventHandler(button_mousehover);
Et puis dans le Code:
private void button_mousehover(object sender, EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Yellow;
}
Est-il quelque chose aussi facile que dans le lien que j'ai posté ci-dessus pour modifier la couleur de surbrillance du bleu à quelque chose d'autre?
Voici le code pour changer le rendu du menu de bande:
private void myForm Load(object sender, EventArgs e)
{
myMenuStrip.Renderer = new MenuRenderer();
{
private class MenuRenderer : ToolStripProfessionalRenderer
{
public MenuRenderer() : base(new MyColors()) { }
}
private class MyColors : ProfessionalColorTable
{
public override Color MenuItemSelectedGradientBegin
{
get { return Color.Orange; }
}
public override Color MenuItemSelectedGradientEnd
{
get { return Color.Yellow; }
}
public override Color MenuItemPressedGradientBegin
{
get{ return Color.Yellow; }
}
public override Color MenuItemPressedGradientEnd
{
get { return Color.Orange; }
}
public override Color MenuItemSelected
{
get { return Color.Gold; }
}
}
Donc ça va changer le fond d'une flottait au-dessus de l'élément de menu à un jaune-orange dégradé, le changer pour un jaune-orange en dégradé sur un clic, et n'importe quel élément dans le menu aura une médaille d'or en évidence sur le vol stationnaire.
Ce que je suis en train de faire est de cette dernière partie (changer la surbrillance jaune/or) pour les boutons de ma forme.
Bien sûr, juste un instant, je vais le monter dans le commentaire.
attendez, ce que les couleurs que vous ne voyez pas que vous vous attendez à voir?
Je peux voir la couleur de surbrillance comme vous l'avez décrit. Quand j'ai passez la souris sur la
MenuItem
s je peux les voir de l'or.Avez-vous essayé FlatAppearance propriété?
OriginalL'auteur electroball09 | 2015-01-07
Vous devez vous connecter pour publier un commentaire.
Dans les propriétés du bouton:
sous Apparence/FlatStyle, sélectionnez "à Plat".
Puis, sous l'Apparence/FlatAppearance/MouseOverBackColor, sélectionnez la couleur de surbrillance vous le souhaitez.
OriginalL'auteur Chuque
Vous pouvez prendre un coup d'oeil à la Bouton De Rendu.
Pourquoi voulez-vous remplacer le convertisseur quand vous pouvez tout simplement vous inscrire à l'événement MouseHover comme suit:
Je vous recommande d'utiliser une souris laisser trop afin de réinitialiser le bouton initial de couleur lorsque la souris n'est pas sur plus.
Je suis d'accord, il ne donne pas les meilleurs résultats. Avez-vous essayé de modifier d'autres propriétés telles que la frontière couleurs
Ok, intéressant, je suis allé à la recherche à travers les propriétés et constaté qu'il y a une collection de propriétés sous FlatAppearance, dont l'un est MouseOverBackColor qui ne modifier l'arrière-plan assez immédiatement (mais toujours d'une couleur unie), mais ne fonctionne que si vous modifiez le FlatStyle à Plat ou Popup.
En fait, avec quelques ajustements, il a l'air assez sympa. Si personne ne sait comment modifier la couleur de surbrillance, je vais probablement jusqu'à la fin l'utilisation de ce.
Grand. Im sûr qu'il y a des tonnes d'exemple en ligne, vous pouvez trouver là où d'autres avec succès surdéfini le bouton en surbrillance.
OriginalL'auteur phadaphunk