VB.Net Winforms form ControlCollection在运行时为空

VB.Net Winforms form ControlCollection在运行时为空,vb.net,winforms,visual-studio,Vb.net,Winforms,Visual Studio,我从一个死项目中重新创建表单时遇到问题。表单中充满了控件(其中132个,其中38个直接附加到表单,其余是38个控件的子控件) 当我尝试运行应用程序时,我有一段代码,它聚焦于文本框,文本框是基本控件之一。但是,此时调试中断。代码最初在表单的Load事件中,但我将其移动到forms Showed事件中,希望能够解决这个问题 事实并非如此 当代码处于中断模式时,我进行了一些挖掘,发现表单的Controls属性为空。这意味着表单上显然没有控件 这很奇怪,因为直到后来才添加或删除控件。controls属性

我从一个死项目中重新创建表单时遇到问题。表单中充满了控件(其中132个,其中38个直接附加到表单,其余是38个控件的子控件)

当我尝试运行应用程序时,我有一段代码,它聚焦于文本框,文本框是基本控件之一。但是,此时调试中断。代码最初在表单的Load事件中,但我将其移动到forms Showed事件中,希望能够解决这个问题

事实并非如此

当代码处于中断模式时,我进行了一些挖掘,发现表单的Controls属性为空。这意味着表单上显然没有控件

这很奇怪,因为直到后来才添加或删除控件。controls属性有一段时间未被触及,因此并不是所有内容都被意外删除。有什么想法吗

我也会复制一些代码,但我不知道复制什么

正如我前面提到的,在设计器中一切都很好,所以可能编译器在编译时会将其拆分。我真的不知道该怎么办


感谢您发现并解决了问题

正如Paulch先生所说,一个鬼鬼祟祟的
New()
是在没有生成控件所需的
InitializeComponent()
调用的情况下实现的


对于其他有此问题的人,请检查
New()
,它可能已被隐藏,这会破坏一切

$FORM.Designer.vb是否存在?您是否明确地实现了构造函数(namly:
Sub New()
)?它是否调用了
InitializeComponent()
?(表单名为main)main.Designer.vb存在并且功能正常,否则设计器视图将无法工作。我将详细介绍一下,但我认为我没有显式地实现new()。在设计时你能看到任何控件吗?出于某种原因,new()是用几个AddHandler语句实现的(这些语句是多余的,因为这些语句向其中添加处理程序的控件已经被处理过了。是的,Matt designer工作得很好。我现在对它进行了排序,new()在没有InitializeComponent的情况下实现。这不是我想添加的内容。当您从菜单打开方法时,IDE会创建一个有效的构造函数。IDE无法正确执行任何操作。它很难可靠地保存在设计器中所做的更改,而不会出现错误,例如如果提交更改失败。Intellisense还可以rly在床上大便,在没有错误的地方报告错误。