Vb.net 如何加载';未来';在我使用窗体控件之前?详细解释如下:
我正在vb6程序上执行迁移,迁移到vb.net。理解这个问题需要的基本知识是,有两种形式需要相互交谈,frmInput1和frmInput2。我有以下代码(在frmInput1后面),用于检查frmInput2上的文本框是否有某个值,似乎在它加载之前:Vb.net 如何加载';未来';在我使用窗体控件之前?详细解释如下:,vb.net,vb6,vb6-migration,Vb.net,Vb6,Vb6 Migration,我正在vb6程序上执行迁移,迁移到vb.net。理解这个问题需要的基本知识是,有两种形式需要相互交谈,frmInput1和frmInput2。我有以下代码(在frmInput1后面),用于检查frmInput2上的文本框是否有某个值,似乎在它加载之前: If frminput2.lblInputMac.Text <> "(no filename)" Then Dim calc As CalculationCaster = New CalculationCaster
If frminput2.lblInputMac.Text <> "(no filename)" Then
Dim calc As CalculationCaster = New CalculationCaster
Call calc.FillMac()
cmdNext.Enabled = False
frminput2.FraInner.Enabled = True
我假设这意味着frmInput2中的对象尚未加载。如何在显示frmInput2之前加载它
谢谢
尼克
此时,您应该能够在不显示表单的情况下在表单之间进行通信。在未显式实例化表单之前,不应引用表单。创建表单的实例
Dim f As New frmInput2
If f.lblInputMac.Text <> "(no filename)" Then
...
End If
然后您可以在表单上使用任何属性、方法或控件
Dim f As New frmInput2
If f.lblInputMac.Text <> "(no filename)" Then
...
End If
如果f.lblInputMac.Text“(无文件名)”则
...
如果结束
frminput2
可能是frminput2类型的隐式全局实例
如果在VB6中定义名为MyForm
的表单类型,平台将自动创建一个同名的隐式全局变量MyForm
。每当您在代码中引用此变量时,它都会自动为您加载表单的实例
就好像你有这个密码一样
Public Function MyForm() As MyForm
Static f As MyForm
If f Is Nothing Then
f = New MyForm
End If
Return f
End Function
我尝试了此操作,然后出现以下错误:无法加载文件或程序集“MSComDlg,Version=1.2.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。我已重新启动VS2010,但错误仍然存在。有什么想法吗?感谢在我看来,
frmInput2
上使用的控件未在程序集中引用。能否在设计器中加载frmInput2
?您应该仔细检查您的项目,并(在可能的情况下)将COM组件替换为其.NET等效组件,或者确保已添加对表单所需COM对象的引用。其中有一个CommonDialog(VB6回溯),但它以前一直有效。是否有.NET版本的cmdlg?我听说过OpenDialog之类的东西,但它似乎并没有做同样的事情。如果你打开有问题的表单,看看工具箱。在对话框
部分中,您将看到旧的CommonDialog
集成到一个组件中的所有.NET实现。也可以在代码中创建其中的每一个。例如:Dim dlg As New FileOpenDialog()
我尝试了此操作,但出现了以下错误:无法加载文件或程序集“MSComDlg,Version=1.2.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。我已重新启动VS2010,但错误仍然存在。有什么想法吗?谢谢