Picturebox, Panel et ScrollBar [Résolu]

philagood 13 Messages postés mardi 2 octobre 2007Date d'inscription 7 mai 2015 Dernière intervention - 18 mars 2015 à 21:24 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 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

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 18 mars 2015 à 22:53
0
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 19 mars 2015 à 02:34
0
Utile
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 19 mars 2015 à 06:47
0
Utile
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
philagood 13 Messages postés mardi 2 octobre 2007Date d'inscription 7 mai 2015 Dernière intervention - 19 mars 2015 à 19:00
0
Utile
Désoler

--
Commenter la réponse de philagood
philagood 13 Messages postés mardi 2 octobre 2007Date d'inscription 7 mai 2015 Dernière intervention - 19 mars 2015 à 19:48
0
Utile
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
philagood 13 Messages postés mardi 2 octobre 2007Date d'inscription 7 mai 2015 Dernière intervention - Modifié par philagood le 19/03/2015 à 19:50
0
Utile
Faut 'il clore ce sujet quelques part ?

--
Commenter la réponse de philagood
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 19 mars 2015 à 19:57
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.