Update page 'ToolTipController'

Th3maz1ng 2019-03-20 13:54:17 +01:00
parent 9c895c0b81
commit d033dd6447

@ -7,13 +7,59 @@ Le ToolTipController est un contrôle permettant de gérer l'affichage des infob
En voici un apperçu : <img src="/git/KmWikiImage/DevExpress/tooltipcontroller_1.png" alt="ToolTip" width="300" />
##### Utilisation du ToolTipController avec un [[Ctrl_XtraGrid|Meta GridView]]
1) Partie Designer
1) **Partie Designer**
1. Déposez via le designer VisualStudio un ToolTipController
2. Allez dans l'onglet des propriétés de votre [[Ctrl_XtraGrid|Meta GridView]] afin d'assigner votre ToolTipController à la propriété **ToolTipController **.
<img src="/git/KmWikiImage/DevExpress/tooltipcontroller_2.png" alt="ToolTip" width="700" />
2) **Partie code**
L'étape précédente va permettre au ToolTipController de générer un événement lorsque la souris passera sur le [[Ctrl_XtraGrid|Meta GridView]].
Nous allons maintenant voir comment gérer cette événement afin de définir le texte à afficher dans l'infobulle :
``` vbnet
Private Sub ToolTip_GetActiveObjectInfo(sender As Object, e As ToolTipControllerGetActiveObjectInfoEventArgs) Handles ToolTipController1.GetActiveObjectInfo
Dim info As ToolTipControlInfo = Nothing
If e.SelectedControl Is Ctrl_XtraGrid1 Then
Try
Dim view As GridView = CType(Ctrl_XtraGrid1.GetViewAt(e.ControlMousePosition), GridView)
Dim hi As GridHitInfo = view.CalcHitInfo(e.ControlMousePosition)
Dim ToolTipText_l As String = String.Empty
' mettre la seconde codition et mettre en variable de classe le texte
If Not hi.InRowCell Then Exit Sub
Dim viewInfo_l As GridViewInfo = CType(GridView1.GetViewInfo, GridViewInfo)
If hi.Column.FieldName.Split("_"c).Count = 2 Then
'On recupere la date et on l'affiche dans le tooltip
Dim objdp_l As ObjectifDateEffetDataPack = TryCast(GridView1.GetDataRow(hi.RowHandle).Item(hi.Column.FieldName), ObjectifDateEffetDataPack)
If objdp_l IsNot Nothing Then
ToolTipText_l = "Date d'effet : " + objdp_l.DateEffet.ToString("dd/MM/yyyy")
Else 'On la calcule :
Dim year_l As Integer = 0
If hi.Column.FieldName.Split("_"c)(0) = "AM1" Then
year_l = (Annee_c.AddYears(-1)).Year
ElseIf hi.Column.FieldName.Split("_"c)(0) = "A" Then
year_l = Annee_c.Year
ElseIf hi.Column.FieldName.Split("_"c)(0) = "AP1" Then
year_l = (Annee_c.AddYears(1)).Year
End If
Dim date_l As Date = Utils.GetWeekStartDate(hi.Column.FieldName.Split("_"c)(1), year_l)
ToolTipText_l = "Date d'effet : " + date_l.ToString("dd/MM/yyyy")
End If
Dim Position_l As Object = hi.HitTest.ToString() + hi.RowHandle.ToString()
info = New ToolTipControlInfo(Position_l, ToolTipText_l)
ElseIf hi.Column.FieldName = "LIBELLE" Then
ToolTipText_l = If(GridView1.GetDataRow(hi.RowHandle).Item("DESCRIPTION").ToString = "", "Pas de description", GridView1.GetDataRow(hi.RowHandle).Item("DESCRIPTION").ToString)
Dim Position_l As Object = hi.HitTest.ToString() + hi.RowHandle.ToString()
info = New ToolTipControlInfo(Position_l, ToolTipText_l)
End If
Catch ex As Exception
Finally
e.Info = info
End Try
End If
End Sub
```
-----
###### *Si vous avez des sugestions d'ajouts, de corrections, m'en faire part Merci*