Bonjour à tous,
mon objectif est de dessiner dans un datagridview un rectangle vert dans une des cellules autour d'un texte recherché.
Pour l'instant je m’entraîne à dessiner ce rectangle autour des 4 caractères à partir du 5ieme dans la colonne 1 ligne 3 (c'est pour vérifier que mon algo de dessin marche bien).
ça donne ce code là dans le PAINT du datagridview:
Ca marche bien quand la police est de style BOLD, mais comme mon DGV contient des lignes en BOLD, REGULAR, ITALIC, je ne comprend pas pourquoi mon rectangle est mal positionné et dimensionné (largeur trop grande de quelques pixel) quand c'est du REGULAR ou ITALIC.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim Rect1 As Rectangle Dim SizePolice As SizeF SizePolice = e.Graphics.MeasureString(Me.DataGridViewPIPC.Item(1, 3).Value.ToString.Substring(5, 4), Me.DataGridViewPIPC.Item(1, 3).InheritedStyle.Font) Rect1.X = Me.DataGridViewPIPC.GetColumnDisplayRectangle(1, True).X + e.Graphics.MeasureString(Me.DataGridViewPIPC.Item(1, 3).Value.ToString.Substring(0, 5), Me.DataGridViewPIPC.Item(1, 3).InheritedStyle.Font).Width Rect1.Y = Me.DataGridViewPIPC.GetRowDisplayRectangle(3, True).Y + 4 Rect1.Height = SizePolice.Height - 1 Rect1.Width = SizePolice.Width e.Graphics.DrawRectangle(New Pen(Brushes.LightGreen, 2), Rect1)
Quelqu'un a-t-il une idée, c'est comme si le e.graphic.measurestring ne fonctionnait correctement qu'avec du BOLD??
Partager