WinForms表单在调用之前显示在构造函数上.Show()

时间:2015-11-23 10:17:19

标签: vb.net winforms activex

使用从VB6移植到VB.NET的旧应用程序。 应用程序使用ActiveX控件(无法替换它们)。

问题是: 这是MDI应用程序。我们在谈论儿童形式。 当调用构造函数创建表单时,它会自动显示该表单(处于冻结状态,因为数据正在加载)。

什么可以导致表单在构造函数中显示?

没有调用.Show()方法。可见财产没有在任何地方设置?

我目前的解决方法是在调用构造函数后调用Hide()和Applicaiton.DoEvents()。但这仍然是闪烁的形式,并且是丑陋的代码实践。

更新

我确定在表单初始化结束时在设计器生成的文件中,调用此函数显示表单。

CType(Me.someActiveXControll, System.ComponentModel.ISupportInitialize).EndInit()

需要此调用,因为如果省略则会出现异常。我不能替换ActiveX控件。

1 个答案:

答案 0 :(得分:0)

我从未使用过MDI表单,因此这些建议可能完全没用,但我会试一试。

  • 尝试将子窗体的“可见”属性设置为false(或在Load()期间设置它)
  • 检查Load()方法,因为Show()通常在Load()之后执行,所以如果你以后实际上不需要表单,那么在你需要它之​​前不要创建它。