Je crée actuellement un module d'impression silencieux. Le contrôle actuel que j'utilise est, il s'assure que la poignée de commande est déjà créée ( Avez-vous des idées à l'esprit sur la manière dont puis-je créer une poignée pour le contrôle sans afficher à l'écran? p> iShandlecreated code>). J'ai tout fait pour tricher cela sans chance du tout. P>
5 Réponses :
Essayez de surcharger Createparams Code> Propriété Getter. En effet, cliquez sur le drapeau
ws_visible code>. P>
J'ai trouvé que cela.creatHandle (); fonctionne vraiment bien (à partir de la forme)
J'ai résolu ce problème de création de la poignée gênante par les paramètres WS_Visible de CreationParams. Vous pouvez également remplacer la propriété CreationParams de contrôle ou appeler la méthode CreateHandle avec une instance Creeparams appropriée. Voir le lien P >
Vous devez accéder à la propriété
J'ai eu le même problème avec d'autres contrôles et j'ai utilisé le mais je ne sais pas comment il fonctionne avec un module d'impression. p> p> Control.Createcontrol () Code>
Méthode:
Assurez-vous que la propriété visible du contrôle est définie sur True ou la poignée ne sera pas créée à partir d'un CreateControl () code> appel. Voir MSDN .microsoft.com / fr-US / US / Bibliothèque / ... Pour plus d'informations.
@Drahakar C'est une très bonne note: CreateControl code> Pourraient choisir de ne pas créer le contrôle. La solution de contournement indiquée sur MSDN est d'accéder à la propriété
.Handle code>
appeler la méthode privée CreateHandle fera le travail.
MethodInfo ch = frm.GetType().GetMethod("CreateHandle", BindingFlags.NonPublic | BindingFlags.Instance); ch.Invoke(frm, new object[0]);