VS 2010在打开表单设计器时停止响应

时间:2013-04-19 16:40:28

标签: vb.net

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

2 个答案:

答案 0 :(得分: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并执行下一个控件。如果它打开了,那么你删除的最后一件事就是罪魁祸首。

答案 1 :(得分:0)

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

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

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