Meilleur auteur de réponses
Tracer des lignes dans une PictureBox au démarrage

Question
-
Salut !
Dans VB 2008, je sais comment tracer des lignes avec la méthode CreateGraphics mais le problème se pose au démarrage de la form. Les lignes ne sont pas tracées. J'ai tenté de mettre Me.Show avant le traçage mais rien n'y fait. Lorsque je mets les codes dans un bouton, les lignes sont tracées au moment du clic mais moi je voudrais qu'elle se tracent toutes seule au démarrage.
Dans VB 6, il y avait PictureBox.AutoRedraw = True pour rendre le graphique permanent mais visiblement ce n'est plus nécessaire avec VB 2008.
Merci pour votre aide.
Réponses
-
Visiblement il n'y a plus d'équivalent à AutoRedraw, il faut à la place gérer les graphismes dans l'évènement Paint.
Source : http://www.vbfrance.com/forum/sujet-EQUIVALENT-AUTOREDRAW-VB-NET-2005_1071200.aspx
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards.- Proposé comme réponse Michel K dimanche 5 juin 2011 14:03
- Marqué comme réponse Ciprian Duduiala jeudi 9 juin 2011 06:41
-
J'ai opté pour le second code qui marche à merveille ! Je l'ai bien sûr adapté pour ma PictureBox.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim MyImage As New Bitmap(Me.ClientRectangle.Width, Me.ClientRectangle.Height) Dim g As Graphics = Graphics.FromImage(MyImage) g.Clear(Color.BlanchedAlmond) g.DrawString("Salut", Me.Font, Brushes.Blue, 100, 100) Me.BackgroundImage = MyImage End Sub
Merci pour ton aide !
- Proposé comme réponse Michel K dimanche 5 juin 2011 14:03
- Marqué comme réponse Ciprian Duduiala jeudi 9 juin 2011 06:41
Toutes les réponses
-
-
-
Visiblement il n'y a plus d'équivalent à AutoRedraw, il faut à la place gérer les graphismes dans l'évènement Paint.
Source : http://www.vbfrance.com/forum/sujet-EQUIVALENT-AUTOREDRAW-VB-NET-2005_1071200.aspx
N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards.- Proposé comme réponse Michel K dimanche 5 juin 2011 14:03
- Marqué comme réponse Ciprian Duduiala jeudi 9 juin 2011 06:41
-
J'ai opté pour le second code qui marche à merveille ! Je l'ai bien sûr adapté pour ma PictureBox.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim MyImage As New Bitmap(Me.ClientRectangle.Width, Me.ClientRectangle.Height) Dim g As Graphics = Graphics.FromImage(MyImage) g.Clear(Color.BlanchedAlmond) g.DrawString("Salut", Me.Font, Brushes.Blue, 100, 100) Me.BackgroundImage = MyImage End Sub
Merci pour ton aide !
- Proposé comme réponse Michel K dimanche 5 juin 2011 14:03
- Marqué comme réponse Ciprian Duduiala jeudi 9 juin 2011 06:41
-
J'ai rencontré le même problème et je viens de trouver la solution en traçant mes lignes dans un RectangleShape à la place d'un PictureBox; le code de traçage est placé dans la procédure d'événement paint du rectangleshape, et c'est tout !
Public Class Form1
Private Sub RectangleShape1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles RectangleShape1.Paint
Dim trait As New System.Drawing.Pen(Color.Black, 1)
Dim g As System.Drawing.Graphics = ShapeContainer1.CreateGraphics()
'** rectangleshape de dimensions 800x600 avec backcolor = white et backstyle=opaque
For i% = 0 To 8
g.DrawLine(trait, RectangleShape1.Left, RectangleShape1.Top + 60 + i% * 60, RectangleShape1.Left + RectangleShape1.Width, RectangleShape1.Top + 60 + i% * 60)
g.DrawLine(trait, RectangleShape1.Left + 80 + i% * 80, RectangleShape1.Top, RectangleShape1.Left + 80 + i% * 80, RectangleShape1.Top + RectangleShape1.Height)
Next i%
g.Dispose()
trait.Dispose()
End Sub
End Class
- Proposé comme réponse jupiter76 lundi 8 septembre 2014 15:47