我在C#WinForms应用程序中使用
Process.Start(...)
(这是有原因的)。我想在后台启动它,而不会分散用户的注意力,所以我尝试最小化或隐藏启动它。在这两种情况下,我都经历了一种非常奇怪的行为:
几秒钟后,
Excel窗口在启动过程中失去焦点。
XLA外接程序包含用户窗体
. 如果删除UserForm,问题就会消失。如果删除外接程序,问题就会消失。
-
使用空工作簿启动Excel 2007。
-
另存为。。。
-
文件类型:Excel 2003加载项(*.xla)
-
-
Alt+F11(打开VBA编辑器)
-
将UserForm添加到项目中。
-
保存并退出Excel
-
-
等待Excel启动,直到它崩溃。
-
重新启动Excel后,它会显示:
详情/调查结果:
-
-
0xA3在他的评论中说,他可以在32位计算机上用Excel 12.0.6535.5002、SP2 MSO 12.0.6535.5002复制它
-
我试过使用2007插件(XLAM)。同样的问题,只是如果它不包含任何用户表单,它甚至会崩溃。
-
0xA3报告说,在他的64位机器上,它工作正常,但Excel仍然意外弹出(但没有崩溃)。到目前为止,我的测试人员的两台机器也是如此。
这是我想在C#中使用的代码(请注意,问题可以完全独立于任何C#应用程序重现,请参见上文)。
Process.Start(new ProcessStartInfo("excel.exe")
{ WindowStyle = ProcessWindowStyle.Minimized });