2009-11-30 5 views
0

J'ai un peu de mal à imprimer certains formulaires dans notre application Smart Client Software Factory.Impression de formulaires C# avec DeckWorkspace

Nous avons un formulaire principal, dont l'en-tête affiche des informations critiques, et sous une zone de liste et un DeckWorkspace. La liste contient un ensemble de catégories, et quand un est sélectionné, un formulaire séparé est chargé dans le DeckWorkspace montrant des informations plus détaillées. Lorsque l'utilisateur sélectionne le bouton d'impression, il peut sélectionner les catégories qu'il souhaite imprimer.

Pour imprimer les sous-formulaires, j'ai trouvé que je devais ouvrir chacun d'eux, puis générer l'image à imprimer, puis construire les pages à partir de ces images.

Le problème que je rencontre est que dans la plupart des cas, le formulaire s'imprime sans aucune donnée dans les zones de texte et les autres contrôles. J'ai trouvé que si le sous-formulaire est ouvert manuellement avant que l'impression est sélectionnée, les données seront imprimées. J'ai essayé d'appeler Application.DoEvents() avant d'imprimer, mais cela n'a pas fonctionné.

Y a-t-il de meilleurs moyens de le faire? Serait-il préférable d'utiliser CrystalReports?

Répondre

0

Raison pourrait être,

Vous avez utilisé événement Form Load pour charger les valeurs sur les contrôles, qui ne se déclenche pas lorsque vous créez nouvelle instance de la forme, seul constructeur appelle. L'utilisation de la méthode show avant de capturer l'image, peut résoudre le problème ...