Changer l'apparence d'un Tooltip

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

4 réponses

Whismeril
Messages postés
17487
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
600
1 févr. 2017 à 15:15
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.
0
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
16 janvier 2018
2
Modifié par Karin.code le 1/02/2017 à 16:18
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
0
Whismeril
Messages postés
17487
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
600
1 févr. 2017 à 16:27
Hum


qu'as tu mis là ou j'ai mis le ?
ToolTip1.SetToolTip(Button1, "?")
0
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
16 janvier 2018
2 > Whismeril
Messages postés
17487
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022

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
0
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
16 janvier 2018
2 > Whismeril
Messages postés
17487
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022

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
0
Whismeril
Messages postés
17487
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
600
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.
0
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
16 janvier 2018
2
1 févr. 2017 à 19:48
Ah d'accord j'ai compris, merci pour ton aide
0
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
2 févr. 2017 à 15:27
0
Karin.code
Messages postés
183
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
16 janvier 2018
2
27 févr. 2017 à 10:29
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
0