Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[2.0] pb Paint + Focus

1 réponse
Avatar
Laurent MONDEIL
Bonjour!

Je développe un outil de manipulation graphique d'objets et j'ai créé pour
ca un UserControl.
Je dessine directement les objets graphiques en capturant l'evenement Paint
de mon user control depuis une classe Controller.

Mon problème est le suivant : si j'appelle l'ouverture d'une fenêtre depuis
un Form contenant mon UserControl, cette fenêtre n'apparait que si j'appuie
sur une touche ([ALT] par exemple). Est ce que quelqu'un ourrait m'indiquer
ce qui pourrait susciter ce problème???

voici les partie significatives de mon code :

Dans le UserControl :
---------------------------------------------------------------------------------------
protected override void OnPaint(PaintEventArgs e)

{

base.OnPaint(e);

//Envoi de l'evenement

if (Repaint != null)

Repaint(e);

}

Dans la classe controller caturant l'evenement

---------------------------------------------------------------------------------------
parentControl.Repaint += new DrawerPaintEventHandler(parentControl_Repaint);

*******

void parentControl_Repaint(System.Windows.Forms.PaintEventArgs e)

{

//Affichage de la scene via la vue

view.Draw(e.Graphics);

//refresh du User Control

RedrawParent();

}



*****

private void RedrawParent()

{

if (parentControl != null)

{

System.Threading.ThreadStart dlg = new
System.Threading.ThreadStart(parentControl.Invalidate);

parentControl.Invoke(dlg);

}

}



---------------------------------------------------------------------------------------

Merci pour toute aide.

Laurent MONDEIL

1 réponse

Avatar
Paul Bacelar
Avez-vous correctement initialiser la propriété Owner du second formulaire ?

--
Paul Bacelar
MVP VC++

"Laurent MONDEIL" wrote in message
news:
Bonjour!

Je développe un outil de manipulation graphique d'objets et j'ai créé pour
ca un UserControl.
Je dessine directement les objets graphiques en capturant l'evenement
Paint de mon user control depuis une classe Controller.

Mon problème est le suivant : si j'appelle l'ouverture d'une fenêtre
depuis un Form contenant mon UserControl, cette fenêtre n'apparait que si
j'appuie sur une touche ([ALT] par exemple). Est ce que quelqu'un ourrait
m'indiquer ce qui pourrait susciter ce problème???

voici les partie significatives de mon code :

Dans le UserControl :
---------------------------------------------------------------------------------------
protected override void OnPaint(PaintEventArgs e)

{

base.OnPaint(e);

//Envoi de l'evenement

if (Repaint != null)

Repaint(e);

}

Dans la classe controller caturant l'evenement

---------------------------------------------------------------------------------------
parentControl.Repaint += new
DrawerPaintEventHandler(parentControl_Repaint);

*******

void parentControl_Repaint(System.Windows.Forms.PaintEventArgs e)

{

//Affichage de la scene via la vue

view.Draw(e.Graphics);

//refresh du User Control

RedrawParent();

}



*****

private void RedrawParent()

{

if (parentControl != null)

{

System.Threading.ThreadStart dlg = new
System.Threading.ThreadStart(parentControl.Invalidate);

parentControl.Invoke(dlg);

}

}



---------------------------------------------------------------------------------------

Merci pour toute aide.

Laurent MONDEIL