Winforms 调试时Winform不可见

Winforms 调试时Winform不可见,winforms,visual-studio-2010,debugging,Winforms,Visual Studio 2010,Debugging,我有一个应用程序,可以处理某些文件,并且有progressbar和textbox。当我调试(VS2010)时,应用程序窗口不可见,但应用程序完成了它认为应该完成的所有工作。如果我想创建不可见的winform应用程序,我可能必须绞尽脑汁才能做到这一点。现在我有一个我不想要的。怎么样?有没有办法解决这个问题?OP正在表单初始化阶段执行工作。在该阶段,表单尚未显示,并且在所有工作完成之前不会显示 解决方案是将工作代码从表单的initialize方法移动到单独的方法,该方法仅在显示表单后调用。此方法应在

我有一个应用程序,可以处理某些文件,并且有progressbar和textbox。当我调试(VS2010)时,应用程序窗口不可见,但应用程序完成了它认为应该完成的所有工作。如果我想创建不可见的winform应用程序,我可能必须绞尽脑汁才能做到这一点。现在我有一个我不想要的。怎么样?有没有办法解决这个问题?

OP正在表单初始化阶段执行工作。在该阶段,表单尚未显示,并且在所有工作完成之前不会显示


解决方案是将工作代码从表单的initialize方法移动到单独的方法,该方法仅在显示表单后调用。此方法应在单独的线程上执行工作,以确保GUI保持重复性,可以取消该过程并返回报告以更新进度栏。

OP正在表单的初始化阶段执行工作。在该阶段,表单尚未显示,并且在所有工作完成之前不会显示


解决方案是将工作代码从表单的initialize方法移动到单独的方法,该方法仅在显示表单后调用。此方法应在单独的线程上执行工作,以确保GUI保持重复性,可以取消该过程并返回报告以更新进度栏。

最有可能的情况是,您正在表单初始化中与GUI在同一线程上“执行工作”。除非应用程序自动退出,否则工作完成时表单将出现。@John Willemse这正是我所做的。我可以在单个块中删除初始化中的所有工作吗?您最好在用户交互后开始工作,例如单击按钮。然后,您可以将“work”代码放入可以调用的方法中。然后,该方法应该在单独的线程中完成这项工作,以便可以根据需要更新progressbar。研究
BackGroundWorker
类以了解更多信息。很可能,您正在表单初始化中与GUI在同一线程上“完成工作”。除非应用程序自动退出,否则工作完成时表单将出现。@John Willemse这正是我所做的。我可以在单个块中删除初始化中的所有工作吗?您最好在用户交互后开始工作,例如单击按钮。然后,您可以将“work”代码放入可以调用的方法中。然后,该方法应该在单独的线程中完成这项工作,以便可以根据需要更新progressbar。研究
BackGroundWorker
课程了解更多信息。