0

我在 VS 2012 中遇到了一个非常奇怪的问题。在 winform 应用程序的设计时,如果我打开一个特定的表单,登录表单会出现在屏幕上,不像在设计器中那样,而是就像应用程序已经启动一样。

我可以在设计时打开登录表单 设计时的登录表单

但是当我打开另一个名为 Print 的表单时,就会发生这种情况在此处输入图像描述

显然,我试图打开的表单没有在设计器中打开,而是应用程序似乎已经启动。如果我通过关闭它来与表单交互,那么 Visual Studio 就会崩溃。同样在任务管理器中,该进程是 Devenv.exe。

我试过清除 obj 和 bin 文件夹,但没有运气。

4

2 回答 2

1

如果您在第二种形式的 -method 中有一些初始化程序,_Load例如要求登录,则该事物将被执行。

您可以在 2. form 的 '_Load' 中检查以下 3 点,如果出现任何情况,请不要执行 '_Load' 中的代码。

this.GetService(typeof(IDesignerHost)) !=null

System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime

System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"
于 2013-01-11T10:26:23.083 回答
0

如果您不想要任何代码更改或进程名称检查,只需将与 GUI 相关的代码从构造函数移动到 Form Shown 事件处理程序。

于 2013-01-11T10:36:09.563 回答