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:
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)
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.

Quelqu'un a-t-il une idée, c'est comme si le e.graphic.measurestring ne fonctionnait correctement qu'avec du BOLD??