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); }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...
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); }); } }
Auriez vous une idée me permettant d'expliquer cela ou de contourner le problème?
Merci...
Partager