Afficher les info-bulle avec ComboBox (dropdownmenu)
Je suis en train de montrer un peu d'info-bulle, mais si je change le selecteditem/texte dans le dropdownmenu, l'info-bulle affiche le texte ancien et le nouveau texte. Je veux seulement montrer le nouveau texte.
private void optionsvalueComboBox_MouseHover(object sender, EventArgs e)
{
ToolTip buttonToolTip = new ToolTip();
buttonToolTip.ToolTipTitle = "Value";
buttonToolTip.UseFading = true;
buttonToolTip.UseAnimation = true;
buttonToolTip.IsBalloon = true;
buttonToolTip.ShowAlways = true;
buttonToolTip.AutoPopDelay = 5000;
buttonToolTip.InitialDelay = 1000;
buttonToolTip.ReshowDelay = 0;
buttonToolTip.SetToolTip(optionsvalueComboBox, optionsvalueComboBox.Text);
}
Vous devez vous connecter pour publier un commentaire.
J'ai essayé de creuser dans le
MouseHover
cas deComboBox
et il semblerait qu'il ne fonctionne pas normalement, comme nous nous y attendons. LeMouseHover
est en fait tiré uniquement lorsque vous déplacez la souris au-dessus de ladrop down button
si votreComboBox
a le style dedropdown
. La solution la plus simple pour cela est de changer votre zone de liste déroulante style dedropdownlist
comme ceci:Cependant ce genre de style de faire de la
ComboBox
readonly. Si ce n'est pas ce que vous voulez, il y a une solution pour vous est d'utiliser l'événementMouseMove
avec unTimer
pour imiter laMouseHover
, voici le code pour vous:En supposant que vous n'aimez pas est le texte de l'infobulle évolution de l'ancien texte par le nouveau texte...
La raison de cela est parce que vous êtes la création d'une nouvelle info-bulle instance sur toutes les hover événement. Chaque fois que le hover événement est déclenché, la vieille info-bulle instance est remplacé par un nouveau qui est pourquoi vous voyez à la fois. Pour résoudre ce problème, mettez la déclaration à l'extérieur de l'événement, comme ceci:
Maintenant la même info-bulle est utilisé avec le libellé simplement remplacé. Laissez-moi savoir si cela fonctionne pour vous!
Un travail complet exemple: