我目前使用System.Windows.Forms的。 在ASP.net自定义控件PrintDialog类 ,因为我想显示打印对话框,并指定其PrinterSettings到ReportPrintDocument.PrinterSettings我在对话框上单击确定按钮后。 这里是我的代码:
using (PrintDialog printDialog = new PrintDialog())
{
if (printDialog.ShowDialog() == DialogResult.OK)
{
ReportPrintDocument rp = new ReportPrintDocument(rvPermit.ServerReport);
rp.PrinterSettings = printDialog.PrinterSettings;
rp.Print();
}
}
我的问题是打印对话框总是显示在Web浏览器的背后,我无法知道它显示与否,直到我最小化的Web浏览器。
你知道如何显示在Web窗体顶部打印对话框? 请帮忙。
这里是我的解决方案现在。 (不推荐),如果你能找到另外一个,请分享给我,我很感激你上的帮助。
初始化一个新的窗口表格Form currentForm = new Form();
显示形式currentForm.Show();
激活形式currentForm.Activate();
其最高设置为true,所以它会带来窗体顶端currentForm.TopMost = true;
将其设置为焦点currentForm.Focus()
设置form.visible =假currentForm.Visible = false;
开始显示打印对话框printDialog.ShowDialog(currentForm)
关闭新形式currentForm.Close();
try { using (PrintDialog printDialog = new PrintDialog()) { ReportPrintDocument rp = new ReportPrintDocument(rvPermit.ServerReport); Form currentForm = new Form(); currentForm.Show(); currentForm.Activate(); currentForm.TopMost = true; currentForm.Focus(); currentForm.Visible = false; if (printDialog.ShowDialog(currentForm) == DialogResult.OK) { if (PrintReport != null) PrintReport(this, e); rp.PrinterSettings = printDialog.PrinterSettings; rp.Print(); } currentForm.Close(); } } catch (Exception) { // Prevent any error while calling the printer dialog }