Question

J'ai besoin de l'intPtr pour un formulaire. Control.FromHandle (contrôle) me donne le contrôle à partir d'une poignée, mais j'ai besoin du contraire: obtenir la poignée à partir d'un contrôle. Comment je fais ça?

Était-ce utile?

La solution

Essayez

Dim handle As IntPtr = someControl.Handle

Remarque: cela ne fonctionnera qu'après la création du descripteur du contrôle. Il existe un intervalle de temps entre la création d'un contrôle et son rendu dans une certaine mesure où il peut renvoyer IntPtr.Zero

Autres conseils

  

Remarque: cela ne fonctionnera qu'après la création du descripteur du contrôle. Il existe une fenêtre de temps entre la création d'un contrôle et son rendu dans une certaine mesure qui peut renvoyer IntPtr.Zero

Je ne suis pas d'accord avec JaredPar à ce sujet: l'accesseur get de la propriété Handle appelle CreateHandle si le descripteur n'est pas encore créé (vous pouvez vérifier avec Reflector). Il est important d’en être conscient, car dans certains cas, cela pourrait avoir des conséquences inattendues.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top