2 pièce(s) jointe(s)
Question sur des graduations
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:
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 :weird:
Pièce jointe 421555
Ici le UserCtrl fait 404 de largeur. on a bien nos 31 intervalles parfaites
Pièce jointe 421559
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