2008-10-03 8 views
1

Quel est le moment approprié pour restaurer les paramètres de disposition de l'interface utilisateur d'un System.Windows.Forms.Control?Restauration des paramètres de l'interface utilisateur dans C# WinForms - à quel événement répondre?

J'ai essayé ceci:

FooBarGadget control = new FooBarGadget(); 
parent.Controls.Add(control); 
control.FobnicatorWidth = lastLayoutSettings.FobWidth; 

Aucun cigare. Raison? le contrôle n'a pas fini de disposer ses internes; c'est dans sa taille par défaut de 100x100 pixels après la construction. Une fois le chargement terminé et affiché dans l'interface utilisateur, il sera de 500x500 pixels. Par conséquent, la définition de FobnicatorWidth à 200 pixels échoue; c'est plus grand que le contrôle.

Existe-t-il un événement control.Loaded - où puis-je restaurer mes paramètres d'interface utilisateur enregistrés?

Répondre

2

Si vous créez ce contrôle dans le cadre du chargement d'un nouveau Form, un bon endroit pour recharger les paramètres enregistrés serait le Form.OnLoad (ou répondez à l'événement Form.Load). Un autre événement qui peut être utile est Control.HandleCreated, qui se produit lorsque la fenêtre sous-jacente de votre contrôle est créée.

Si aucune de ces solutions ne vous aide, peut-être que plus d'informations sur votre scénario particulier nous aideront à obtenir une meilleure réponse.

+0

Cela ne fait pas partie d'un formulaire, sinon j'utiliserais Form.OnLoad. Je vais essayer l'événement HandleCreated. –

+0

Salut Charlie. Je voulais juste vous faire savoir que j'ai testé l'événement HandleCreated et cela semble effectivement fonctionner. Merci! –

+0

Charlie, après quelques mois d'utilisation, nous avons découvert que HandleCreated ne fonctionnait pas toujours. Pour les contrôles imbriqués, parfois cela ne fonctionne pas. L'utilisation de l'événement .Layout semble plutôt fonctionner. –