Picturebox, Panel et ScrollBar [Résolu]

Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015
- - Dernière réponse : ucfoutu
Messages postés
18039
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.
Afficher la suite 

7 réponses

Messages postés
3248
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
30 août 2019
46
0
Merci
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
Commenter la réponse de cs_ShayW
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Discussion déplacée vers le sous-forum VB.Net.
Prière de prendre soin (c'est important) au choix du sous-forum concerné.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015
0
Merci
Désoler

--
Commenter la réponse de philagood
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015
0
Merci
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
Commenter la réponse de philagood
Messages postés
13
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
7 mai 2015
0
Merci
Faut 'il clore ce sujet quelques part ?

--
Commenter la réponse de philagood
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
212
0
Merci
Une discussion est libérée en cliquant sur le tag RESOLU au niveau de ton tout-premier message.
Commenter la réponse de ucfoutu