cs_Charlie
Messages postés110Date d'inscriptionjeudi 9 mai 2002StatutMembreDernière intervention11 mars 2010
-
11 mars 2010 à 20:51
mdevaux62
Messages postés111Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention17 novembre 2012
-
12 mars 2010 à 14:43
Bonjour,
J'ai un panel avec une image .tif en backgroud. J'essais d'ajouter du texte dans mon image mais l'affichage ne se fait pas correctement au premier appel de la fonction. Le tout rendre dans l'ordre au second appel cependant.
En regardant de plus prêt, j'ai remarqué que mon objet retourné (ClipRectangle) n'a pas les bonnes dimensions.
Quelqu'un a une idée?
Merci
Private Sub MAP_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MAP.Paint
Dim J As Integer
Dim PositionY As Single
Dim Lettre As String
Dim Font_Grille As New Font("Courrier new", 10, FontStyle.Bold, GraphicsUnit.Pixel)
Dim Brush_grille As New SolidBrush(Color.Black)
Dim Text_Format As New StringFormat()
Dim Rect_Text As New RectangleF()
Dim g As Graphics = e.Graphics
Dim value As Rectangle
value = e.ClipRectangle 'Un watch sur value m'indique que le rectangle n'a pas la meme dimension au premier appel et aux subséquents!
' Si on est avec une origine située en haut
If TABLE_Prop.Get_Origine() 0 Or TABLE_Prop.Get_Origine() 1 Then
PositionY = 30
' Ajout des lettres
For J = 0 To TABLE_Prop.Get_Y - 1
' Si on est avant la lettre I
If J < 8 Then
Lettre = Convert.ToChar(J + 65)
Else
Lettre = Convert.ToChar(J + 66)
End If
g.DrawString(Lettre, Font_Grille, Brush_grille, 12, PositionY, Text_Format)
g.DrawString(Lettre, Font_Grille, Brush_grille, 488, PositionY, Text_Format)
'End If
PositionY += 460 / TABLE_Prop.Get_Y
Next
Else
PositionY = 30
' Ajout des lettres
For J = TABLE_Prop.Get_Y - 1 To 0 Step -1
' Si on est avant la lettre I
If J < 8 Then
Lettre = Convert.ToChar(J + 65)
Else
Lettre = Convert.ToChar(J + 66)
End If
g.DrawString(Lettre, Font_Grille, Brush_grille, 12, PositionY, Text_Format)
g.DrawString(Lettre, Font_Grille, Brush_grille, 488, PositionY, Text_Format)
'End If
PositionY += 460 / TABLE_Prop.Get_Y
Next
End If
mdevaux62
Messages postés111Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention17 novembre 20127 12 mars 2010 à 14:43
Bonjour
J'ai simplifié ton code mais tu devrais te baser sur ça :
Private Sub Map_Paint_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Map.Paint
e.Graphics.DrawString("TEST", New Font("Arial", 12.0!, FontStyle.Regular, GraphicsUnit.Point, CType(0, Byte)), Brushes.Red, 10, 10)
End Sub