水晶报表动态改变纸张时,总是出现以下错误“设置打印机发生错误,错误信息为:无效索引。 (异常来自 HRESULT:0x8002000B (DISP_E_BADINDEX))”
代码如下:
System.Drawing.Printing.PrintDocument pdoc = new System.Drawing.Printing.PrintDocument();
pdoc.PrinterSettings.PrinterName = comboBoxPrinters.Text.Trim();
foreach (System.Drawing.Printing.PaperSize size in pdoc.PrinterSettings.PaperSizes)
{
if (size.PaperName == listBoxPapers.Text.Trim())
{
rdt.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)size.RawKind;
break;
}
}
rdt.PrintOptions.PrinterName = comboBoxPrinters.Text.Trim();
crv.ReportSource = rdt;
comboBoxPrinters为ComBoBox控件,用来保存打印机信息
comboBoxPrinters为ComBoBox控件,用来保存打印机纸张信息
第一次是正常显示,以后改变纸张时就出现上面我说的错误。
前一版本程序我也是这么写的,没出现这问题,不知道现在怎么突然出现这问题?
环境:vs2005,水晶报表版本为10.2.3600.0
期待回复
代码如下:
System.Drawing.Printing.PrintDocument pdoc = new System.Drawing.Printing.PrintDocument();
pdoc.PrinterSettings.PrinterName = comboBoxPrinters.Text.Trim();
foreach (System.Drawing.Printing.PaperSize size in pdoc.PrinterSettings.PaperSizes)
{
if (size.PaperName == listBoxPapers.Text.Trim())
{
rdt.PrintOptions.PaperSize = (CrystalDecisions.Shared.PaperSize)size.RawKind;
break;
}
}
rdt.PrintOptions.PrinterName = comboBoxPrinters.Text.Trim();
crv.ReportSource = rdt;
comboBoxPrinters为ComBoBox控件,用来保存打印机信息
comboBoxPrinters为ComBoBox控件,用来保存打印机纸张信息
第一次是正常显示,以后改变纸张时就出现上面我说的错误。
前一版本程序我也是这么写的,没出现这问题,不知道现在怎么突然出现这问题?
环境:vs2005,水晶报表版本为10.2.3600.0
期待回复
解决方案 »
- 如何用程序设定Server2008里面IIS的ISAPI and CGI
- 关于NTFS权限问题
- 关于EndInvoke
- 求一个正则表达式,谢谢!分多阿
- 我要编一个class实现某个interface有没有什么快捷键或方法可以快速的生成接口的实现框架代码啊?如果接口里有很多方法要实现的话.那录入这
- windows 2003升级后出问题了 vs c# 访问数据库出异常了,谨慎升级!!
- 谢谢大家能否提供一个关于面对对象编程思路的代码阿!最好是教学案例。
- 一个有趣的智商题,考考大家?送分
- C#打开外部程序怎么判断点击取消或者关闭按钮
- 关于通过代理服务器发送邮件(代理服务器需要怎么设置)
- 请问C#如何识别文本文件的某关键字?
- 关于Convert .ToInt32 转换的问题
这一句就报错了
{
cmbPrint.Items.Add(PrinterSettings.InstalledPrinters[i].ToString());
}
{
cmbPrint.Items.Add(PrinterSettings.InstalledPrinters[i].ToString());
}
是这样取打印机的,我怀疑是系统DCOM配置有问题,因为以前也是这么做的,都没这问题