0

我有在 Windows XP 上执行并使用 microsoft reportViewer 的程序,一切正常,客户成功打印文档。

程序在 Windows 7 上运行的地方,当单击控制 reportViewer 的打印按钮时什么也不做。期望在计算机中显示可用的打印机,但什么也不做。

我认为 PrintDialog 和属性 UseEXDialog = true 上的问题关系,但在控制中没有选项改变它。

我在 Visual Studio 2012 中编译了项目,安装了 windows reportviewer redistributable 2012 但问题没有解决。

解决问题的任何想法。抱歉英语不好。

4

1 回答 1

2

问题解决了:)

当调试程序看到以下错误:

System.Runtime.InteropServices.SEHException

消息:外部组件已引发异常。

来源:System.Windows.Forms

目标站点:Int32 PrintDlgEx(PRINTDLGEX)

此错误仅在 Windows7 中出现。当在 google 中搜索时发现下一个描述“你的程序指定了 [STAThread] 属性”。

将线程单元状态设置为 ApartmentState.STA 的代码工作正常。

线程.SetApartmentState(ApartmentState.STA);

于 2013-06-18T11:58:28.297 回答