我有在Windows XP上执行并使用microsoft reportViewer的程序,一切正常,客户成功打印文档。
在Windows 7上运行程序时,单击控件reportViewer的打印按钮时什么都不做。期望在计算机上显示可用的打印机,但什么都不做。
我认为PrintDialog上的问题关系和属性UseEXDialog = true,但是在控件中没有选项更改。
我在visual studio 2012中编译了项目,安装了windows reportviewer redistributable 2012,但问题没有解决。
任何解决问题的想法。 抱歉英语不好。
答案 0 :(得分:2)
问题解决了:)
当调试程序看到以下错误时:
System.Runtime.InteropServices.SEHException
消息:外部组件抛出了异常。
来源:System.Windows.Forms
目标网站:Int32 PrintDlgEx(PRINTDLGEX)
仅在Windows7中出现此错误。当在谷歌搜索时找到下一个描述“你的程序指定了[STAThread]属性”。
将线程公寓状态设置为ApartmentState.STA的代码正常工作。
thread.SetApartmentState(ApartmentState.STA);