Picturebox raifraichisement

Signaler
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010
-
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
-
salut j'utilise une picturebox pour laquel je change la propriété image 2 fois mais lorsque je la change pour la 3 fois celle ci ne se met pas à jour.j'ai essayer refresh ,invalidate rien à faire auriez vous une idéee.
merci

7 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Salut,

Pourrais-tu nous montrer comment tu procèdes ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

private



void
pictureBox12_Click(

object
sender,

EventArgs
e){

picCapture.Image =


Image
.FromFile(

string
.Concat(

MyGlobals
.CheminDisign,

"btncaptureor.png"
)); 1er changement MPS4Session.CaptureTo(MPS4PROTOCOLLib.


MPS4PictureSize
.Image8bitMode,

"192.168.100.189"
, 1000);TimerCheckStatus.Start();

}


private



void
TimerCheckStatus_Tick(

object
sender,

EventArgs
e){

TimerCheckStatus.Stop();

picCapture.Image =


Image
.FromFile(

string
.Concat(

MyGlobals
.CheminDisign,

"btncaptureve.png"
));2eme Changement}

la procedure suivante est appeler à l'interieur de l' évenement public
void MPS4Session_OnIncomingMessage(object lpDisp) voir fin


private



void
CreateIm(){

stream =


new
System.IO.

MemoryStream
(imbyte,

true
);stream.Write(imbyte, 0, imbyte.Length);

bmp =


new



Bitmap
(stream);
picCapture.Image =

Image.FromFile(
string.Concat(
MyGlobals.CheminDisign,
"btncaptureor.png")); 3 changement celui ci ne passe pas
}

public
void MPS4Session_OnIncomingMessage(
object lpDisp){

Mess = (MPS4PROTOCOLLib.

IMPS4Message)lpDisp;
while (Mess.Image null) { MPS4Session.SendStatus(); }; imbyte (System.

Byte[])Mess.Image;CreateIm();

}
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Salut,

Le Timer à une période de combien de millisecondes ?
As-tu essayer en mettant Application.DoEvents() après l'affectation de l'image au PictureBox ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

Application.DoEvents() ne change rien .mon timer est de 15 seconde mais peut importe car il ne fonctionne plus lor de la 3 affectation du picturebox!!! 
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Tu es sur que tu ne reste pas bloqué indéfiniment dans la boucle :

while
(Mess.Image ==
null) { MPS4Session.SendStatus(); }; ?
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

non sur et certain quand je debogue pas à pas de que j'arrive à la ligne
Image.FromFile(string.Concat(MyGlobals.CheminDisign, "btncaptureor.png"));3 changement celui ci ne passe pas
l'appli plante!!!
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
2
Quelle est l'exeption que l'appli te retourne?
Que retourne te renvois string.Concat(MyGlobals.CheminDisign, "btncaptureor.png")
? (même si ca semble etre la meme chose que le premier changement)
Le fichier renvoyé exite-t-il vraiment?

Est ce que ca ne plante pas plutot au moment du bmp = new
Bitmap(stream);
car le stream ne contient pas une image?
Essais un stream.flush() avant pour forcer l'écriture.

f.colo