Changer l'apparence d'un Tooltip [Résolu]

Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
- - Dernière réponse : Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
- 27 févr. 2017 à 10:29
Bonjour,
Pour changer le BackColor et la Font d'un Tooltip il faut tout d'abord mettre la propriété OwnerDeaw en True , et aussi :
 Dim Texte As String
Dim Taille_Texte As Size
Private Sub ToolTip1_Popup(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PopupEventArgs) Handles ToolTip1.Popup
e.ToolTipSize = Taille_Texte 'La nouvelle taille ToolTip1
End Sub
Private Sub ToolTip1_Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawToolTipEventArgs) Handles ToolTip1.Draw
e.DrawBackground()
e.DrawBorder()
e.DrawText()
e.Graphics.DrawString(Texte, New Font("Century Gothic", 12), Brushes.White, 2, -1) 'Le texte a dessiner, la Nouvelle Font, Couleur du texte, les coordonnées
End Sub

Pour attribuer un Tooltip à un contrôle il faut par exemple :
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ToolTip1.SetToolTip(Button1, "")
End Sub

mais le problème est que ça ne fonctionne pas pour le ContextMenuStrip car il n'est pas considéré comme un contrôle, si je fais ça par exemple :
ToolTip1.SetToolTip(TesteToolStripMenuItem1, Texte)

alors une erreur s'affiche, même si je fais ça :
 TestToolStripMenuItem1.ToolTipText = Texte

alors les modifications (le BackColor et la Font) ne seront pas appliquer sur lui
merci pour tout aide
Afficher la suite 

Votre réponse

4 réponses

Messages postés
12372
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
0
Merci
Bonjour


si tu fais ça
e.Graphics.DrawString(e.ToolTipText, New Font("Century Gothic", 12), Brushes.White, 2, -1)


plus besoin de ta variable Texte, et comme ça tu peu utiliser le même tooltip pour plusieurs contrôles.

Ensuite ton problème n'a rien à voir avec la personnalisation.

Avec un tooltip sans personnalisation tu ne peux pas non plus écrire
ToolTip1.SetToolTip(TesteToolStripMenuItem1, Texte)


Du coup, je ne sais pas si ce tooltip particulier est personnalisable.


Mais, vu que beaucoup de tes dernières questions concernent la personnalisation, et que ça n'est pas toujours simple en winform, as tu penser à passer au WPF.
Certes c'est une nouvelle technologie, mais une fois qu'on la maitrise un peu, on fait absolument tout ce qu'on veut avec l'interface.
Commenter la réponse de Whismeril
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
0
Merci
Bonsoir Whismeril,
merci de m'avoir répondu
j'ai fait comme tu as demandé
e.Graphics.DrawString(e.ToolTipText, New Font("Century Gothic", 12), Brushes.White, 2, -1)

mais le texte s'affiche en double, comme le montre l'image suivante : (ne prête pas attention à la taille de la bulle)
__Mais, vu que beaucoup de tes dernières questions concernent la personnalisation ....
c'est vrai que mes dernières questions concerne la personnalisation des contrôles, je cherche à modifier les thèmes de mes applications, et en ce qui concerne WPF je vais y jeter un œil merci
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
> Whismeril
Messages postés
12372
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Bonsoir Whismeril,
j'ai rien mis dans exemple que je t'ai montré, voici toute la partie code :
Public Class Form1
Private Sub ToolTip1_Popup(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PopupEventArgs) Handles ToolTip1.Popup
e.ToolTipSize = New Size(250, 21)
End Sub
Private Sub ToolTip1_Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawToolTipEventArgs) Handles ToolTip1.Draw
e.DrawBackground()
e.DrawBorder()
e.DrawText()
e.Graphics.DrawString(e.ToolTipText, New Font("Century Gothic", 12), Brushes.White, 2, -1)
End Sub
End Class
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
> Whismeril
Messages postés
12372
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
j'ai trouvé où est le problème il faut enlever cette e.DrawText() partie là mais ça ne résout toujours pas mon problème, le BackColor et la Font de la bulle ne changent pas
Whismeril
Messages postés
12372
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Oui, comme je te l'ai dit, c'est normal, tu ne peux pas associer un tooltiptext avec un ToolStripMenuItem, donc tout ce que tu montres ne sert à rien.
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
-
Ah d'accord j'ai compris, merci pour ton aide
Whismeril
Messages postés
12372
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2018
-
Tu marques le sujet résolu, attention, je ne dis pas que c'est impossible, mais pas comme ça.

Quand on regarde msdn
https://msdn.microsoft.com/fr-fr/library/system.windows.forms.toolstripitem.autotooltip(v=vs.110).aspx__On voit que l'info bulle d'un ToolStripMenuItem (dérivé de ToolStripItem) dérive lui-même de ToolStripItem.
https://msdn.microsoft.com/fr-fr/library/system.windows.forms.toolstripitem(v=vs.110).aspx et qu'effectivement tout ça ne dérive pas de Control.

Voila en gros pourquoi on ne peut pas associer un ToolTip à un ToolStrip.

De là à dire que ta demande est impossible, y'a de la marge.
Commenter la réponse de Karin.code
Messages postés
5601
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 décembre 2018
0
Merci
Bonjour,

je pense que tu trouveras ta réponse ici:

https://msdn.microsoft.com/en-us/library/system.windows.forms.tooltip.ownerdraw.aspx
Commenter la réponse de cs_Le Pivert
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Dernière intervention
16 janvier 2018
0
Merci
Bonjour,
Je m'excuse auprès de Whismeril et cs_Le Pivert de ne pas avoir répondu à vos réponses
je vais consulter les liens que vous m'avez suggérées, merci
Commenter la réponse de Karin.code

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.