我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
{ }
}
{
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
{ }
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货