OVH Cloud OVH Cloud

Modifier des controles via classe - erreur thread

1 réponse
Avatar
Delf
Bonjour.

J'ai une WinForm qui contient 1 PictureBox et 2 Buttons.

Je souhaite modifier leurs attributs via une classe:

class FormModifier
{
private PictureBox m_PictureBoxRef = null;
private Button m_ButtonStartRef = null, m_ButtonQuitRef = null;

public FormModifier(PictureBox pPictureBoxRef, Button
pButtonStartRef, Button pButtonQuitRef)
{
m_PictureBoxRef = pPictureBoxRef;
m_ButtonStartRef = pButtonStartRef;
m_ButtonQuitRef = pButtonQuitRef;
}

public void Run()
{
Thread.Sleep(TimeSpan.FromSeconds(3));
m_PictureBoxRef.ImageLocation =
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "_02.png");

[...]

m_ButtonStartRef.Enabled = true;
m_ButtonQuitRef.Enabled = true;
}
}

J'obtiens une erreur sur la ligne 'm_ButtonStartRef.Enabled = true;'

"Cross-thread operation not valid: Control 'btStart' accessed from a
thread other than the thread it was created on."

Pourquoi je peux modifier l'attribut ImageLocation de m_PictureBoxRef
(et certains autres, non) et pas ButtonStartRef ?

Comment faire ? Merci anticipé.

--
Delf

1 réponse

Avatar
Delf
Delf a écrit :

Comment faire ? Merci anticipé.



J'ai trouvé ceci:

http://msdn2.microsoft.com/en-us/library/ms171728(d=ide).aspx

--
Delf