C# 打印FORM问题

sangyingjun1234 2012-03-29 04:41:12
我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
{

}
}
...全文
173 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunylf 2012-03-30
  • 打赏
  • 举报
回复
vb都能實現這個功能了,c#也不是問題吧.

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧