Дочерняя форма не обновляется, когда я пытаюсь запустить приложение из формы MDI? - PullRequest
1 голос
/ 02 декабря 2010


В моем приложении есть форма MDI и дочерние формы.
Здесь моя ситуация ...

Основная форма: MDI Форма
Регистрационная форма: форма ребенка MDI
Форма Desig: другая форма, которая откроется, когда мы нажмем одну кнопку в форме регистрации.

Теперь, если я попытаюсь обновить элементы поля со списком формы Register из формы Desig, значит, это не обновление. то есть я не вижу свои новые элементы в этом поле со списком в форме регистрации.

Теперь, когда я пытаюсь запустить свое приложение непосредственно из формы регистрации, тот же код работает отлично, но тот же код не работает, когда я пытаюсь запустить приложение из формы 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

Форма Desig

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

Так есть ли что-то, что нужно помнить, когда мы используем форму MDI - Child Form?

1 Ответ

1 голос
/ 02 декабря 2010

Когда вы обновляете Register из Desig, оно работает, когда вы запускаете приложение из Register, потому что существует только одна форма Register, и VB автоматически считает ее экземпляром формы.

Когда форма регистра является дочернейформа, вам нужно использовать экземпляр формы, а не имя класса, что-то вроде MainForm.ActiveMdiChild.refreshCombo()

...