我C#打印时候 想把FORM中的Controls中的控件内容也打印出来 然后在打印DataGridView中的 表单  不是水晶报表  怎么能都实现这一功能  这是我部分代码  我现在想传FORM取其中的Controls 能实现吗?   public static void Print_DataGridView(DataGridView dgv1)
        {
            PrintPreviewDialog ppvw;
            PrintDialog pd;
            PageSetupDialog psd;
            try 
        {
                // Getting DataGridView object to print
                dgv = dgv1;                // Getting all Coulmns Names in the DataGridView
                AvailableColumns.Clear();
                foreach (DataGridViewColumn c in dgv.Columns)
                {
                    if (!c.Visible) continue;
                    AvailableColumns.Add(c.HeaderText);
                }                // Showing the PrintOption Form
                PrintOptions dlg = new PrintOptions(AvailableColumns);
                if (dlg.ShowDialog() != DialogResult.OK) return;                                PrintTitle = dlg.PrintTitle;
                PrintAllRows = dlg.PrintAllRows;
                FitToPageWidth = dlg.FitToPageWidth;
                SelectedColumns = dlg.GetSelectedColumns();                psd = new PageSetupDialog();
                PageSettings ps = new PageSettings();
                psd.PageSettings = ps;
                psd.ShowDialog();
                
                //psd.PageSettings.Landscape = true;                printDoc.DefaultPageSettings.Landscape = psd.PageSettings.Landscape;
                printDoc.DefaultPageSettings.PaperSize = psd.PageSettings.PaperSize;
                RowsPerPage = 0;                ppvw = new PrintPreviewDialog();
                
                ppvw.Document = printDoc;                // Showing the Print Preview Page
                printDoc.BeginPrint +=new System.Drawing.Printing.PrintEventHandler(PrintDoc_BeginPrint);
                printDoc.PrintPage +=new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage);
                //if (ppvw.ShowDialog() != DialogResult.OK)
                //{
                //    printDoc.BeginPrint -= new System.Drawing.Printing.PrintEventHandler(PrintDoc_BeginPrint);
                //    printDoc.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage);
                //    return;
                //}
                ppvw.ShowDialog();
                // Printing the Documnet
                pd = new PrintDialog();
                if (pd.ShowDialog() == DialogResult.OK)
                {
                    printDoc.Print();
                }
                //printDoc.Print();
                printDoc.BeginPrint -= new System.Drawing.Printing.PrintEventHandler(PrintDoc_BeginPrint);
                printDoc.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(PrintDoc_PrintPage);
        }
        catch (Exception ex)
        {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);        
        }
            finally
            {            }
        }