Bonjour,

J'ai un UserControl dans lequel j'ai un Panel tout en haut, de hauteur fixe.
Ce contrôle a une propriété DateDébut et une DateFin
Dans la méthode Paint du panel , je crée des graduations correspondant chacune à 1 jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub DrawRuler(ByVal sender As Object, ByVal e As PaintEventArgs) Handles Ruler.Paint
        Dim WAvailable As Integer = Me.ClientSize.Width
        Dim dDays As Integer = DateDiff("d", DateFrom, DateTo) + 1
        Dim tick As Integer = WAvailable / dDays
 
        For i As Integer = 0 To dDays
            e.Graphics.DrawLine(Pens.Black, i * tick, 20, i * tick, 45)
        Next
 
End Sub

Si je pose ce UserCtrl sur une forme, selon sa largeur, la dernière graduation ne tombera pas pile sur le bord droit du panel:
Exemple sur 31 jours.
Ici le UserCtrl fait 414 de largeur. on a bien nos 31 intervalles plus un reste
Nom : Capture1.PNG
Affichages : 93
Taille : 2,6 Ko
Ici le UserCtrl fait 404 de largeur. on a bien nos 31 intervalles parfaites
Nom : Capture2.PNG
Affichages : 101
Taille : 2,6 Ko

Je me doute bien que cela vienne du fait que les width sont des integers et non de reals. Mais existe-t-il une astuce pour que, quelque soit la largueur du UserCtrl et le nombre de jours, les intervalles soient parfaites?

Merci pour vos idées sachant que, dans la zone "Strip 1" (c'est aussi un panel) seront ajoutés des Labels qui vont représenter une période de temps. Donc il faudra bien les positionner avec les graduations.

Olivier