Picturebox, Panel et ScrollBar

Résolu
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015 - 18 mars 2015 à 21:24
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 mars 2015 à 19:57
Bonjour a tous,

voila mon problème,
J'ai une form composer d'un panel avec une picturebox a l'intérieur.
Je dessine des rectangles a l'interieur de ma picturebox
Pour dessiner les rectangles j'utilise 2 boucles For (i,j) pour faire varier les coordonnées et une variable COLOR_CASE pour faire varier la couleur.
Je lance le dessin dans l'événement bouton_click

voila le code a l'intérieur des boucles:

Dim Rect As New Rectangle(j, i, 1, 1)
Dim PIC As Graphics = Me.PictureBox.CreateGraphics
PIC.DrawRectangle(New Pen COLOR_CASE), Rect)
PIC.Dispose()

mon problème est que lorsque la form et le panel ont atteints leur taille maxi que j'ai définit, et que la taille de la picturebox est plus grande pour s'adapter au dessin, les scrollbars apparaissent. Les dessins apparaissent comme je le veux mais lorsque je touche au scrollbar pour regarder plus bas, tous s'efface et redevient comme avant que je dessine.
C'est comme si je dessinais sur la picturebox et non a l'intérieur.
Je pensais que mon code était bon, si quelqu'un a une idée, je lui en serais reconnaissant.

Je vous remercie d'avance de l'aide que vous m'apporterez.

7 réponses

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 56
18 mars 2015 à 22:53
Bonjour

C'est du vb.net et non du vb6.

Quand tu touches au scrollbar
il faut peut etre saisir l'évement du scrolling et appeller
me.picturebox.invalidate
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
19 mars 2015 à 02:34
Discussion déplacée vers le sous-forum VB.Net.
Prière de prendre soin (c'est important) au choix du sous-forum concerné.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
19 mars 2015 à 06:47
Bonjour,
Je ne connais pas VB.Net.
Mais le comportement exposé me donne à penser qu'il ne s'agit que d'une question de persistance à définir.
Sous VB6, existe pour cela la propriété AutoRedraw.
Je crois avoir compris que sous VB.Net, cette persistance était assurée en deux temps, comme exposé ici : http://bytes.com/topic/visual-basic-net/answers/366825-autoredraw-simillar-property
0
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015
19 mars 2015 à 19:00
Désoler

--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015
19 mars 2015 à 19:48
Merci a tous
et surtout a ucfoutu, ta solution était la bonne.

Il faut déssiner dans une image puis charger l'image dans la picturebox

Dim IMG As New Bitmap(PictureBox.Width, PictureBox.Height)
Dim Rect As New Rectangle(j, i, 1, 1)
Dim PIC As Graphics = Graphics.FromImage(IMG)
PIC.DrawRectangle(New Pen COLOR_CASE), Rect)
PIC.Dispose()
PictureBox.image = IMG

encore merci
0
philagood Messages postés 13 Date d'inscription mardi 2 octobre 2007 Statut Membre Dernière intervention 7 mai 2015
Modifié par philagood le 19/03/2015 à 19:50
Faut 'il clore ce sujet quelques part ?

--
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 219
19 mars 2015 à 19:57
Une discussion est libérée en cliquant sur le tag RESOLU au niveau de ton tout-premier message.
0