2008-10-29 10 views

Répondre

5

(répondre à ma propre question, pour d'autres, et pour référence future)

Je pense (pas encore tout à fait sûr) que ce soit parce que InvokeRequired retourne toujours false si le contrôle n'a pas encore été chargé/montré. Je l'ai fait une solution qui semble fonctionner pour le moment, ce qui est simple référence la poignée du contrôle associé à son créateur, comme suit: (? Voir http://ikriv.com:8765/en/prog/info/dotnet/MysteriousHang.html - bas cached version)

var x = this.Handle; 

(Question connexe: Boiler plate code replacement - is there anything bad about this code?)

3

Si le handle n'existe pas encore, vous pouvez le forcer en sous-classant le contrôle et en appelant CreateHandle; Cependant, la plus grande question est: pourquoi faites-vous des choses avec un formulaire qui n'a pas été chargé? Personnellement, je ne commencerais une telle opération qu'après Load.

+1

Le formulaire est chargé, mais il s'agit de contrôles qui sont chargés dynamiquement dans un contrôle utilisateur qui n'est pas encore défini sur Visible = true (je pense). – Benjol