private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("coucou, voili un ptit test", new Font(FontFamily.GenericSansSerif, 4), new SolidBrush(Color.Black), 25, 45);
Bitmap lbl = new Bitmap(Label1.Size.Width, base.Size.Height);
Label1.DrawToBitmap(lbl, new System.Drawing.Rectangle(0, 0, Label1.Size.Width, Label1.Size.Height));
}
Le "coucou voili un ptit test" s'affiche bien mais pas le label.
Si quelqu'un pouvias m'eclairer la dessus.
Merci.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 14 nov. 2006 à 14:42
pour transformer ton bitmap en image :
Image Img = Image.FromHBitmap(lbl.GetHBitmap());
ensuite, tu n'as pas tout a fait l'air de comprendre ce que tu écris (c'est pas méchant hein ^^)
donc :
ecrire
Bitmap lbl = blablalba
ne signifie pas que tu crée une image. tu ne fait qu'instancier un objet de type bitmap. en bref, cest un objet qui est en mémoire qui peut contenir une bitmap.
ensuite, drawimage...
tu dessine dans le contexte graphique cible (le rectangle que tu as défini) l'image source (ton bitmap qui doit en fait etre une image).
ensuite, le bitmap que tu as créé est vide. il a une taille mais pas d'image a l'intérieur (cest ce que tu as écrit clairement).
A priori, tu devrais plutot récupérer le hDC ou hWnd du controle a dessiner, et recopier la zone du graphics du controle dans le graphics d'impression (je sais pas si cest clair). A vue de nez ca me semble peut etre le plus simple (ton controle a une propriété handle qui correspond au hWnd).
cs_wally88
Messages postés361Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention 1 octobre 2010 14 nov. 2006 à 15:34
Bon et bien j'ai utilisé ce code :http://www.csharpfr.com/infomsg_IMPRIMER-TOUT-CONTENU-FENETRE_733360.aspx Comme dis Leprov j'ai pas tout tout compris et encore moin avec ce code la mais sa a le merite de marcher donc je vais la regarder de plus pret afin de comprendre quelque chose. Ce qui me chagrine c'est qu'apparment il y a plus simple avec ce code :
Bitmap lbl = new Bitmap(label1.Size.Width, label1.Size.Height);
Rectangle lblr = new Rectangle(100, 50, label1.Size.Width, label1.Size.Height);
mais je n'arrive pas a l'utiliser donc, merci pour les reponses et je vais essayer de mieux comprendre tout sa.
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 14 nov. 2006 à 15:40
private void pd_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawString("coucou, voili un ptit test", new Font(FontFamily.GenericSansSerif, 4), new SolidBrush(Color.Black), 25, 45);
// Je crée l'image ?? Bitmap lbl = new Bitmap(label1.Size.Width, label1.Size.Height);
/ / Sa position c'est ?
Rectangle lblr = new Rectangle(100, 50, label1.Size.Width, label1.Size.Height);
// Et je l'affiche ? Le problème est qu'il demande une Image et non un Bitmap c'est sa le soucis? e.Graphics.DrawImage((Image)lbl, lblr);
}
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 14 nov. 2006 à 09:33
tu n'as dessiné que ta string dans ton graphics (pour dire les choses plus simplement). ton bitmap est présent en mémoire mais n'est dessiné nulle part
e.Graphics.DrawString("coucou, voili un ptit test", new
Font(FontFamily.GenericSansSerif, 4), new
SolidBrush(Color.Black), 25, 45);
// Je crée l'image ?? Bitmap lbl = new Bitmap(label1.Size.Width, label1.Size.Height);
/ / Sa position c'est ?
Rectangle lblr = new Rectangle(100, 50, label1.Size.Width, label1.Size.Height);
// Et je l'affiche ? Le problème est qu'il demande une Image et non un Bitmap c'est sa le soucis? e.Graphics.DrawImage(lbl, lblr);
}
cs_wally88
Messages postés361Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention 1 octobre 2010 14 nov. 2006 à 15:54
Merci pour le code mais je n'y arrive toujours pas avec cette methode il ne m'affiche rien du tout surement a cause du hdc qui n'est pas recuperer ou truc dans ce gout. Je m'attarderais la dessus plus tard quand j'aurais a peu pres compris la l'autre source je devrais pouvoir m'en sortir.
Merci pour votre patience.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 14 nov. 2006 à 16:16
je répète, ton bitmap ne contient rien, cest donc normal que tu naffiche rien. avant
e.Graphics.DrawImage((Image)lbl, lblr);
tu dois remplir le contenu de ton objet bitmap...