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

Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 1 févr. 2017 à 09:19 - Dernière réponse : Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention
- 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 

10 réponses

Répondre au sujet
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 févr. 2017 à 15:15
0
Utile
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
Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - Modifié par Karin.code le 1/02/2017 à 16:18
0
Utile
6
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 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention > Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 févr. 2017 à 17:07
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 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention > Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 févr. 2017 à 17:12
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 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 févr. 2017 à 17:49
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 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 1 févr. 2017 à 19:48
Ah d'accord j'ai compris, merci pour ton aide
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 févr. 2017 à 20:04
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
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 2 févr. 2017 à 15:27
0
Utile
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
Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 27 févr. 2017 à 10:29
0
Utile
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.