Tester un handle [Résolu]

Neow26 50 Messages postés mercredi 19 mars 2003Date d'inscription 12 mai 2007 Dernière intervention - 4 août 2006 à 11:18 - Dernière réponse : Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention
- 4 août 2006 à 17:53
Salut tout le monde,

J'ai un petit problème sur un UserControl que je suis en train de créer. Il marche très bien en interprété mais il me renvoie une erreur du genre "Impossible d'appler Invoke ou BeginInvoke tant que le handle de la fenêtre n'est pas créer".

Dans mon code, dès la fin de InitializeComponents je lance un thread qui lui commence par appeller un délégué (affichage d'un label) par un this.Invoke(). Je pense qu'à ce moment là le handle n'a pas pu être enore créer et que j'ai cette erreur pour ça.

Pour résoudre mon problème j'ai ajouté en 1er ligne de mon constructeur un this.CreateHandle. Ca marche en interprété et compilé mais je trouve ça pas très recommandable.

Je voudrais savoir si quelqu'un sait comment tester l'existence d'un handle et de le créer si besoin.

Merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 4 août 2006 à 12:00
3
Merci
Salut,
Tu peux tester l'existence du Handle avec la Property IsHandleCreated de ton Control.

<hr size="2" />VC# forever

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Meilleure réponse
Neow26 50 Messages postés mercredi 19 mars 2003Date d'inscription 12 mai 2007 Dernière intervention - 4 août 2006 à 12:07
3
Merci
Oui merci, je viens à l'intsant de trouver en cherchant une propriété sur un autre objet.
Ca me donne la chose suivante


if (!this.IsHandleCreated)
   this.CreateHandle();

Merci Neow26 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Neow26
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 4 août 2006 à 12:03
0
Merci
Salut

Tu peux t'inscrire a l'evenement HandleCreated, et appeler ton Invoke() dans la méthode associée

Mx
MVP C# 
Commenter la réponse de MorpionMx
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 4 août 2006 à 17:53
0
Merci
Salut, tu peux rajouter un this.Show( ) juste après InitializeComponents, ça va créer les handles des contrôles contenus dans la forme. Sinon Je pense que utiliser l'évènement HandleCreated comme le dit Mx c'est mieux que IsHandleCreated + CreateHandle.
Commenter la réponse de Lutinore

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.