VB.Net ToolTip avec certains éléments d'un Combobox
cs_MagDix
Messages postés531Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention 6 octobre 2012
-
5 mars 2009 à 14:36
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 2013
-
6 mars 2009 à 19:28
Bonjour à tous...<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Est-il possible de faire afficher un ToolTips pour chacun des éléments dans un Combobox???
Si oui, je n'y arrive pas...
Je cherche un moyen pour que si la souris est sur un élément du combobox, automatiquement une petite fenêtre s'affiche pour donner un explication à ce choix.
Sans faire un clic dessus, uniquement amener la souris sur un élément du combobox...
Je ne sais pas quel fonction utilisé afin de sélectionner mon combobox et de dire si l'utilisateur est par exemple sur l'élément 1 alors fait apparaître ce tooltip
Ici, j'ai le code que je crois qui pourrait être OK mais je bloque pour la sélection d'un élément du ComboBox (J’ai le code pour VB6 mais en .Net ca bug)
Private Sub Ajout_Rep_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 5 mars 2009 à 18:26
Bonjour,
J'ai fait ce truc-là il y a quelque temps, mais sous VB6
Si personne n'a à te proposer une solution toute faite sous VB.Net, d'une part et que, d'autre part, tu te sens capable de faire la transposition nécessaire de VB6 à VB.Net, je mettrai ici le code VB6.
Attendons d'abord. Tu diras ensuite ...
cs_MagDix
Messages postés531Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention 6 octobre 20121 5 mars 2009 à 18:54
Salut Ca pourrait toujours être utile...
Bien que j'ai trouvé un peu mais j'ai un erreur que je ne réussis pas à solutionner..
Erreur dit:
System.InvalidCastException was unhandled
Message="Impossible d'effectuer un cast d'un objet de type 'System.String' en type 'System.Windows.Forms.Control'."
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 6 mars 2009 à 19:28
Bon....
Voilà donc la solution VB6 (puisque personne ne semble avoir la solution VB.Net) à transposer, donc.
Elle nécessite ta combo, un label et un timer
Private Sub Form_Activate()
For i = 0 To 40
Combo1.AddItem i & "abbbbbcccc" & i
Next
Timer1.Interval = 10
With Label1
.AutoSize = True
.Move Combo1.Left, Combo1.Top - Label1.Height
.Visible = False
.BackColor = vbYellow
End With
Set Font = Combo1.Font
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Visible = False
End Sub
Private Sub Timer1_Timer()
Static depart As Long, jmf As String
If Me.ActiveControl <> Combo1 Then
Label1.Visible = False
Exit Sub
End If
Label1.Caption = Combo1.List(Combo1.ListIndex)
If Label1.Caption <> "" And Label1.Caption <> Combo1.Text Then
If TextWidth(Label1.Caption) <= Me.Width - (Combo1.Left + Combo1.Width) Then
oux = Combo1.Left + Combo1.Width
Else
oux = Combo1.Left - TextWidth(Label1.Caption)
End If
ouy = ((Combo1.ListIndex - Combo1.TopIndex + 1.99) * (TextHeight("Je m'en fiche"))) + Combo1.Top
If ouy > Me.Height - (3 * Label1.Height) Then ouy = Me.Height - (3 * Label1.Height)
DoEvents
With Label1
.Move oux, ouy
.ZOrder
.Visible = True
End With
End If
End Sub
Mets le label où tu veux, le code se charge de le placer ensuite au bon endroit, en fonctioin de la position de ta combo
A toi de transposer pour VB.Net