1


我的应用程序中有 MDI 表单和子表单。
这里我的情况...

主表单:MDI 表单
注册表单:MDI 表单的子表单
设计表单:当我们单击注册表单上的一个按钮时将打开的另一个表单。

现在,如果我尝试从设计表单刷新注册表单的组合框的项目,那么它不会刷新。即我在注册表单的组合框中看不到我的新项目。

现在,当我尝试直接从注册表单启动我的应用程序时,相同的代码可以完美运行,但是当我尝试从 MDI 表单启动应用程序时,相同的代码没有运行。

这是我的代码。
MDI 表格:

Dim regform As New Register
StatusLabel.Text = "Opening Workman Registration"
regform.MdiParent = Me
regform.Show()
StatusLabel.Text = "Workman Registration"
regform.concombo.Focus()

报名表格:

 Public Sub refreshCombo()
    desigcombo.Items.Clear()
    sitecombo.Items.Clear()

    addDesCombo() ' method which will loads all new data from database 

    desigcombo.Text = designame ' the string variable (designame)


End Sub

设计表格

Register.refreshCombo() ' will run when we will click on one button.

当我们使用 MDI 表单 - 子表单时,他们有什么需要记住的吗?

4

1 回答 1

1

当您从 Desig 刷新 Register 时,它会在您从 Register 启动应用程序时起作用,因为只有一个 Register 表单并且 VB 自动将其视为表单的一个实例。

当注册表单是子表单时,您需要使用表单的实例而不是类名,例如MainForm.ActiveMdiChild.refreshCombo()

于 2010-12-02T07:17:21.617 回答