使用从VB6移植到VB.NET的旧应用程序。 应用程序使用ActiveX控件(无法替换它们)。
问题是: 这是MDI应用程序。我们在谈论儿童形式。 当调用构造函数创建表单时,它会自动显示该表单(处于冻结状态,因为数据正在加载)。
什么可以导致表单在构造函数中显示?
没有调用.Show()方法。可见财产没有在任何地方设置?
我目前的解决方法是在调用构造函数后调用Hide()和Applicaiton.DoEvents()。但这仍然是闪烁的形式,并且是丑陋的代码实践。
更新
我确定在表单初始化结束时在设计器生成的文件中,调用此函数显示表单。
CType(Me.someActiveXControll, System.ComponentModel.ISupportInitialize).EndInit()
需要此调用,因为如果省略则会出现异常。我不能替换ActiveX控件。
答案 0 :(得分:0)
我从未使用过MDI表单,因此这些建议可能完全没用,但我会试一试。