1

我有许多表单的 VisualBasic 项目,其中一个是 form1。每当调用 initializecimponent 方法时,VS 停止响应,我必须使用 taskmgr 结束它。错误在 form1.designer.vb 内,因为我能够在设计器中查看和编辑其他表单和用户控件。另一个奇怪的事情是独立的 exe 在 IDE 之外成功运行。我还尝试将表单添加到另一个项目并且该项目也崩溃了。每当我在设计器中构建/调试/查看 form1 ,我一个接一个地得到两个对话框:VS2010已停止工作,VS2010正在重新启动(但它永远不会!)

4

2 回答 2

2

创建表单的副本,然后开始删除表单的某些部分,直到它起作用为止。您删除的最后一件事是失败的。您必须通过删除每个控件的三个部分来手动执行此操作:

  • 宣言(底部)
  • 实例化(在顶部)
  • 配置(中间)。下面是一个配置示例

  '
  'LeftLabel
  '
  Me.LeftLabel.Anchor = System.Windows.Forms.AnchorStyles.Left
  Me.LeftLabel.AutoSize = True
  Me.LeftLabel.Location = New System.Drawing.Point(3, 3)
  Me.LeftLabel.Name = "LeftLabel"
  Me.LeftLabel.Size = New System.Drawing.Size(39, 13)
  Me.LeftLabel.TabIndex = 1
  Me.LeftLabel.Text = "Label2"

您还需要删除对该控件的任何引用,例如将其添加到容器中。

一次执行一个控件,然后构建项目并打开表单。如果表单未打开,请重新启动 Visual Studio 并执行下一个控件。如果它确实打开了,那么您删除的最后一件事就是罪魁祸首。

于 2013-04-19T17:04:05.710 回答
0

对于面临同样问题的程序员,这里是解决方案:确保您的用户控件不会在自己内部创建自己的实例。即使您的程序可能运行时没有任何错误,VS 设计器也会崩溃。这是此类示例代码:

Public class controlx
   public sub new()
      dim x as new controlx
   End sub
End class

你可能认为这是一个愚蠢的逻辑错误,但这样的错误可能非常令人沮丧和耗时。总是将你的代码分解为更小的单元,以便如 Brian 所说的那样易于管理。

于 2013-04-21T07:59:42.837 回答