Search code examples
windowswinformsc#-4.0panel

Label is not show in print


I have used below code to print the Panel of windows form.

private void button1_Click(object sender, EventArgs e)
        {
            System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
            doc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Doc_PrintPage);
            doc.Print();
        }

private void Doc_PrintPage(object sender, PrintPageEventArgs e)
        {
            Panel grd = new Panel();
            Bitmap bmp = new Bitmap(panel2.Width, panel2.Height, panel2.CreateGraphics());
            panel2.DrawToBitmap(bmp, new Rectangle(0, 0, panel2.Width, panel2.Height));
            RectangleF bounds = e.PageSettings.PrintableArea;
            float factor = ((float)bmp.Height / (float)bmp.Width);
            e.Graphics.DrawImage(bmp, bounds.Left, bounds.Top, bounds.Width, factor * bounds.Width);

            bmp.Save("test12.jpg");
        }

Now from above code, when i click on button the print function will be call but it excluded label in it. i am attaching image for your reference. first image is my UI design. enter image description here, when i use print functionality it removes the label value as you can see in other image. enter image description here i have used rectagleshap control which are in Pink color and i am displaying label on it. I think the label may be send back but when i used front back then also it is not appear.


Solution

  • In my case label was shown back to the rectangle, so i added one more label and set it as bring front. thanks for the help.