VB.Net ToolTip avec certains éléments d'un Combobox

Signaler
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
-
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
-
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



        ToolTip1.SetToolTip(CboListeRep.i, "Test")



    End Sub


 


 


 


Merci de votre aide...

3 réponses

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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 ...
Messages postés
532
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
6 octobre 2012
1
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'."

Voici le code



Private



Sub
CboListeRep_MouseHover(

ByVal
sender

As



Object
,

ByVal
e

As
System.EventArgs)

Handles
CboListeRep.MouseHover



ToolTip1.SetToolTip(ComboBox.Items(1), "Test")



End



Sub
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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