Picturebox, Panel et ScrollBar [Résolu]

Signaler
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
Discussion déplacée vers le sous-forum VB.Net.
Prière de prendre soin (c'est important) au choix du sous-forum concerné.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
226
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
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015

Désoler

--
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015

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
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015

Faut 'il clore ce sujet quelques part ?

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