[Vb 2005.net] picturebox

Fermé
orzhov Messages postés 53 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 22 octobre 2008 - 29 sept. 2008 à 13:23
 myzicdeth - 11 janv. 2009 à 11:22
Bonjour,

j'ai fait un programme avec une grille que j'ai dessiné sans une picturebox pour pouvoir faire des graphique en cliquant dessus donc j'ai enregistré mon image dans un bitmap et lorsque j'execute mon projet il ne m'affiche pas de visuelle (on ne voit pas la grille)

voici mon code:

Private Sub GraphiquePictureBox_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles GraphiquePictureBox.MouseClick
Dim x As Integer = GraphiquePictureBox.Size.Width - 1 'taille en longueur
Dim y As Integer = GraphiquePictureBox.Size.Height - 1 'taille en largeur
Dim vdiv As Integer = (x / 32)
Dim hdiv As Integer = (y / 10)
Dim verti As Integer = x - vdiv
Dim hori As Integer = y - hdiv
Dim cpt As Integer = 1 'compteur pour tacer toutes les 4 verticales, une vertical épaisse
Dim blackPen As New Pen(Color.Black, 2)
Dim g As Graphics = Graphics.FromImage(m_MyImage)
Dim Ft = New Font("Microsot Sans Serif", 12, FontStyle.Bold)

m_X = e.X
m_Y = e.Y
If (m_Croix = 0 And m_Rond = 1 And m_Event = 0 And m_Efface = 0) Then
Dim point As New Point(m_X, m_Y)
Dim PointR As New RectangleF(m_XR, m_YR, 25, 25)
If m_SavePointXR > (m_X - 12) Then
MsgBox("Impossible de remonter dans le temps", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
Exit Sub
End If
m_select += 1
m_XR = e.X - 12
m_YR = e.Y - 12
m_TablePointR(m_LineTableR) = point
m_TableR(m_LineTableR) = PointR
m_SavePointXR = m_XR
m_LineTableR += 1
ReDim Preserve m_TableR(m_LineTableR)
ReDim Preserve m_TablePointR(m_LineTableR)
ElseIf (m_Croix = 1 And m_Rond = 0 And m_Event = 0 And m_Efface = 0) Then
Dim point As New Point(m_X, m_Y)
Dim Croix1 As New Point(m_XC - m_coef, m_YC - m_coef)
Dim Croix2 As New Point(m_XC + m_coef, m_YC + m_coef)
Dim Croix3 As New Point(m_XC - m_coef, m_YC + m_coef)
Dim Croix4 As New Point(m_XC + m_coef, m_YC - m_coef)
If m_SavePointXC > m_X Then
MsgBox("Impossible de remonter dans le temps", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
Exit Sub
End If
m_select += 1
m_XC = e.X
m_YC = e.Y
m_TablePointC(m_LineTableC) = point
m_TableC(0, m_LineTableC) = Croix1
m_TableC(1, m_LineTableC) = Croix2
m_TableC(2, m_LineTableC) = Croix3
m_TableC(3, m_LineTableC) = Croix4
m_SavePointXC = m_XC
m_LineTableC += 1
ReDim Preserve m_TableC(4, m_LineTableC)
ReDim Preserve m_TablePointC(m_LineTableC)
End If
'dessin grille
g.DrawRectangle(Pens.Black, 0, 0, x, y)
'ligne(horizontale)
While hori > 5
g.DrawLine(Pens.Black, 0, hori, x, hori)
hori -= hdiv
End While
'ligne(verticale)
While verti > 10
If cpt = 4 Then
g.DrawLine(blackPen, verti, 0, verti, y)
cpt = 0
Else
g.DrawLine(Pens.Black, verti, 0, verti, y)
End If
verti -= vdiv
cpt += 1
End While
'trace des points et des courbes enregistrer
If m_select = 1 Or m_select = 2 Or m_select = 3 Then
Dim r As New RectangleF(m_XR, m_YR, 25, 25)
g.DrawEllipse(m_redPen, r)
For I As Integer = 0 To m_LineTableR - 1
If m_TablePointR(I + 1) <> New Point(0, 0) Then g.DrawLine(m_redPen, m_TablePointR(I), m_TablePointR(I + 1))
g.DrawEllipse(m_redPen, m_TableR(I))
m_Rond = 0
Next
g.DrawLine(m_bluePen, m_XC - m_coef, m_YC - m_coef, m_XC + m_coef, m_YC + m_coef) ' v
g.DrawLine(m_bluePen, m_XC + m_coef, m_YC - m_coef, m_XC - m_coef, m_YC + m_coef) ' h
For I As Integer = 0 To m_LineTableC - 1
g.DrawLine(m_bluePen, m_TableC(0, I), m_TableC(1, I))
g.DrawLine(m_bluePen, m_TableC(2, I), m_TableC(3, I))
If m_TablePointC(I + 1) <> New Point(0, 0) Then g.DrawLine(m_bluePen, m_TablePointC(I), m_TablePointC(I + 1))
m_Croix = 0
Next
m_select = 0
End If
If m_Rond = 0 And m_Croix = 0 And m_Event = 0 And m_Efface = 1 Then
MsgBox("êtes-vous sur de supprimer ce point?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel)
m_Efface = 0
End If
GraphiquePictureBox.Image = m_MyImage 'enregistrement de l'image
m_sec = 0
End Sub
A voir également:

1 réponse

orzhov Messages postés 53 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 22 octobre 2008 2
29 sept. 2008 à 15:52
pour la voir il faut cliquer sur la picture box y aurai pas moyen de faire un clique dessus automatique lors de l'ouverture du form
1
c'est justement parce que tu es dans l'évenement suivant : Private Sub GraphiquePictureBox_MouseClick

met ton code dans l'evenement onload par exemple
0