Bonjour,

J'utilise pour le développement de mon application, plusieurs nvieaux d'imbrication de UserControls. Je suis à un moment confonté à un "bug" Microsoft lié aux OS 64 bits : lorsque je passe mon form en plein écran, les différents UserControls se redimensionnent, mais il y a un problème avec le contenu des UserControls du dernier niveau... (source : http://blogs.msdn.com/b/alejacma/arc...depth-x64.aspx)

J'ai donc tenté d'appliquer 2 des solutions proposées, consistant à overrider le OnSizeChanged pour les UC posant problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
protected void ChangeSize()
{
  if (childPanel != null)
  {
    childPanel.Size = new Size(
    this.ClientSize.Width - 2 * childPanel.Left,
    this.ClientSize.Height - 2 * childPanel.Top);
  }
}
 
protected override void OnSizeChanged(System.EventArgs ea)
{
  if (this.Handle != null)
  {
    BeginInvoke(new MethodInvoker(ChangeSize))
  }
  base.OnResize(ea);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
protected override void OnSizeChanged(EventArgs e)
{
   if (this.Handle != null)
   {
      this.BeginInvoke((MethodInvoker)delegate
      {
         base.OnSizeChanged(e);
      });
   }
}
Le redimensionnement s'effectue maintenant correctement. Néanmoins, j'ai alors un autre problème : le UC ne semble plus rentrer dans l'événement Load. J'ai besoin de cet événement, car la fonction d'initialisation du UC y est appelée directement pour répondre à certains besoins spécifiques...

Auriez vous une idée me permettant d'expliquer cela ou de contourner le problème?

Merci...